2009-09-09 9 views
2

Sous Linux, la machine virtuelle Java définit le répertoire de travail égal au dossier personnel de l'utilisateur. Dans Windows est-ce le dossier où se trouve le pot. Comment puis-je trouver où le pot (à partir de mon application) est situé pour changer le répertoire de travail?Java: Comment savoir où le fichier jar est situé sous Linux

Martijn

+0

De quel fichier jar posez-vous des questions? Votre application, l'API Java ou un tiers? –

+0

le pot de mon application –

Répondre

5

Essayez d'obtenir le chemin du pot avec ce code:

String path = YourClass.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath(); 

vous pouvez supprimer le "* .jar" partie avec:

path=path.substring(0, path.lastIndexOf('/')+1); 

J'ai eu le même problème avec un java jeu quand j'avais besoin d'ouvrir un fichier dans le même répertoire que le jar était.

Double-cliquer sur le fichier jar dans Linux n'a pas ouvert le fichier. Bien sûr, vous pouvez ouvrir une ligne de commande et modifier dir dans le répertoire jar, puis exécuter le pot à partir de là, mais je devais double-cliquer sur le pot.

0

Dans les deux cas, il s'agit du répertoire actuel. Sous Windows automatiquement le répertoire réel est défini sur le répertoire base du fichier jar, si vous l'exécutez à partir de l'explorateur. Sous Linux, le home-directory est le répertoire réel de votre interface graphique. Pour définir le répertoire, écrivez un court shell-script, qui définit le répertoire réel (avec la commande cd), puis exécute le fichier jar (avec javaw -jar xyz.jar).