Obtenez l'emplacement du fichier JAR

Je vais essayer d'obtenir l'emplacement d'un Runnable JAR fichier est exécuté à partir.
J'ai essayé de faire

try {
    String path = new java.io.File(".").getCanonicalPath();
} catch (IOException e) {
    e.printStackTrace();
}

Mais qui renvoie:

C:\Users\Kevin\Desktop/server/Server

alors que le fichier JAR est situé à

C:\Users\Kevin\Desktop

J'ai aussi essayé de faire

return new file(Server.class.getProtectionDomain().getCodeSource().getLocation().getPath());

Mais qui renvoie:

C:\Users\Kevin\Desktop\server.jar/server/Server

Donc, fondamentalement, je veux le chemin d'accès du fichier JAR sans le nom de fichier et non pas le chemin de la classe.

Toute façon de faire cela?

Cela peut être utile, perméable à la discussion. stackoverflow.com/questions/320542/... //Henrik
La spécification est incomplète. Ce qui devrait être fait si vous êtes à la pas en cours d'exécution à partir d'un BOCAL? Que faire si le POT vit dans un Réseau?
Eh bien, la chose est que je suis en train de créer un répertoire contenant des fichiers et qui doit être sur mon ordinateur de bureau ou partout où je suis en cours d'exécution le POT de. Si je le lance en mode de débogage au sein d'Eclipse permet de créer des fichiers dans la corbeille/dossier du serveur.
Mais vous avez toujours exécuter à partir de ".", donc ..... où est le problème?

OriginalL'auteur Snakybo | 2013-03-12