Java: Comment savoir où se trouve le fichier jar sous Linux
-
05-07-2019 - |
Question
Sous Linux, la machine virtuelle Java définit le répertoire de travail sur le même répertoire que le répertoire personnel de l'utilisateur. Sous Windows, c’est le dossier où se trouve le fichier jar. Comment puis-je trouver l'emplacement du fichier (à partir de mon application) pour modifier le répertoire de travail?
Martijn
La solution
Essayez d’obtenir le chemin du fichier avec le code suivant:
String path = YourClass.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath();
Ensuite, vous pouvez supprimer le " *. jar " séparer avec:
path=path.substring(0, path.lastIndexOf('/')+1);
J'ai eu le même problème avec un jeu Java quand j'avais besoin d'ouvrir un fichier dans le même répertoire que le jar.
Un double clic sur le fichier jar sous Linux n’a pas ouvert le fichier. Bien sûr, vous pouvez ouvrir une ligne de commande et changer dir en jar dir puis lancer le jar à partir de là, mais j’avais besoin de double-cliquer sur le jar.
Autres conseils
Dans les deux cas, il s’agit du répertoire réel. Sous Windows automatiquement, le répertoire actuel est défini sur le répertoire de base du jar, si vous l'exécutez à partir de l'explorateur. Sous linux, le répertoire principal est le répertoire actuel de votre interface graphique. Pour définir le répertoire, écrivez un court script shell définissant le répertoire réel (avec la commande cd), puis exécutant le fichier jar (avec javaw -jar xyz.jar).