Copier/coller le jar de son app [débutant]
Résolu
Hr2944
Messages postés
723
Date d'inscription
Statut
Membre
Dernière intervention
-
Hr2944 Messages postés 723 Date d'inscription Statut Membre Dernière intervention -
Hr2944 Messages postés 723 Date d'inscription Statut Membre Dernière intervention -
Bonjour
Je cherche a copier coller le jar de mon app (ce jar est donc mon app en elle même). Mon souci: pour le copier, il me faut le chemin (C:\Users\*******\Downloads), sauf que le nom d'utilisateur change d'un pc a l'autre. Du coup existe t-il un moyen de le faire (j' ai entendu parler des chemins relatifs, ça pourrait m'aider ?)
Merci de votre aide
Je cherche a copier coller le jar de mon app (ce jar est donc mon app en elle même). Mon souci: pour le copier, il me faut le chemin (C:\Users\*******\Downloads), sauf que le nom d'utilisateur change d'un pc a l'autre. Du coup existe t-il un moyen de le faire (j' ai entendu parler des chemins relatifs, ça pourrait m'aider ?)
Merci de votre aide
A voir également:
- Copier/coller le jar de son app [débutant]
- App data - Guide
- Historique copier coller - Guide
- Copier coller pdf - Guide
- Copier-coller - Accueil - Informatique
- Style d'écriture a copier coller - Guide
2 réponses
Bonjour,
Basiquement tu peux utiliser la propriété user.home (cf. System Properties)
Cependant rien ne garanti que ce dossier existe et qu'il soit vraiment le dossier de téléchargement/
Par exemple chez moi j'ai déplacé le dossier Downloads pour qu'il soit dans D:\ alors que mon user.home est quand même dans C:\
La bonne valeur est stockée dans le registre et on peut la requêter en ligne de commande :
Petite méthode utilitaire pour faire cette commande en Java :
Dans ton cas :
Malheureusement ceci ne fonctionne que pour Windows, il faudrait l'adapter pour Linux, Mac, etc.
Basiquement tu peux utiliser la propriété user.home (cf. System Properties)
String userHome = System.getProperty("user.home"); File downloadPath = new File(userHome, "Downloads"); System.out.println(downloadPath);
Cependant rien ne garanti que ce dossier existe et qu'il soit vraiment le dossier de téléchargement/
Par exemple chez moi j'ai déplacé le dossier Downloads pour qu'il soit dans D:\ alors que mon user.home est quand même dans C:\
La bonne valeur est stockée dans le registre et on peut la requêter en ligne de commande :
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v {374DE290-123F-4565-9164-39C4925E467B}
Petite méthode utilitaire pour faire cette commande en Java :
public static String readRegistry(String path, String type, String name) { String[] cmdArray = { "reg", "query", path, "/v", name }; try (Scanner sc = new Scanner(Runtime.getRuntime().exec(cmdArray).getInputStream())) { while (sc.hasNextLine()) { String line = sc.nextLine(), tab[] = line.split(Pattern.quote(type)); if (tab.length == 2) return tab[1].trim(); } } catch (Exception e) { e.printStackTrace(); } return null; }
Dans ton cas :
String downloadPath = readRegistry("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders", "REG_EXPAND_SZ", "{374DE290-123F-4565-9164-39C4925E467B}");
Malheureusement ceci ne fonctionne que pour Windows, il faudrait l'adapter pour Linux, Mac, etc.
Hr2944
Messages postés
723
Date d'inscription
Statut
Membre
Dernière intervention
86
Merci
Hr2944
Messages postés
723
Date d'inscription
Statut
Membre
Dernière intervention
86
De toute façon mon project est destiné à Windows