Copier/coller le jar de son app [débutant]
Résolu/Fermé
Hr2944
Messages postés
720
Date d'inscription
mardi 8 janvier 2019
Statut
Membre
Dernière intervention
22 janvier 2020
-
Modifié le 8 janv. 2019 à 19:32
Hr2944 Messages postés 720 Date d'inscription mardi 8 janvier 2019 Statut Membre Dernière intervention 22 janvier 2020 - 8 janv. 2019 à 20:15
Hr2944 Messages postés 720 Date d'inscription mardi 8 janvier 2019 Statut Membre Dernière intervention 22 janvier 2020 - 8 janv. 2019 à 20:15
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
- Copier coller pdf - Guide
- Historique copier-coller android - Guide
- Copier-coller - Accueil - Informatique
- Symbole clavier copier coller - Guide
2 réponses
KX
Messages postés
16755
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
8 janv. 2019 à 20:02
8 janv. 2019 à 20:02
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.
jee pee
Messages postés
40801
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
16 février 2025
9 525
8 janv. 2019 à 19:54
8 janv. 2019 à 19:54
Salut,
Et si tu utilisais les variables d'environnement ? Se connecter sur la ligne de commande et taper SET pour les avoir toutes.
La variable USERPROFILE contient la racine du compte.
Et si tu utilisais les variables d'environnement ? Se connecter sur la ligne de commande et taper SET pour les avoir toutes.
La variable USERPROFILE contient la racine du compte.
8 janv. 2019 à 20:07
8 janv. 2019 à 20:15