Utiliser chemin relatif
Résoluff -
voila mon PB,
j'utilise un chemin absolue pour appeler un exe en cliquant sur un jbutton cependant, j'aimerais pouvoir l’appeler avec un chemin relatif
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler "+"D:\\Program Files\\mon fichier\\mon fichier.exe");
pour pouvoir lancer l'exe quelque soit le disque sur lequel il est enregistrer ( C ou D)
car lors d'une installation , on ne sait pas ou le programme va s'installer par défaut et un chemin absolue ne fonctionnera donc pas
mais je ne trouve aucune solution qui fonctionne réellement sur d'autres forums
Merci d'avance pour votre aide
4 réponses
Le problème porte sur l'utilisation d'un chemin relatif pour lancer un fichier exécutable avec Runtime.getRuntime().exec en Java afin de rester indépendant du disque d'installation lors de l'installation sur différents postes. Plusieurs réponses préconisent d'obtenir un chemin relatif fiable en Java via getAbsolutePath() ou getCanonicalPath(), puis d'utiliser ce chemin consolidé avec Runtime.getRuntime().exec et de vérifier le répertoire courant ou le classpath. D'autres explications indiquent que classpath influence la résolution des fichiers relatifs: le fichier recherché peut être situé dans un des dossiers du classpath, le premier fichier existant étant utilisé. En pratique, la solution consiste à calculer le chemin relatif depuis le répertoire du fichier exécutant ou du jar, en utilisant des méthodes comme getCanonicalPath, puis d'appeler l'exécutable avec ce chemin.
-
Bonjour,
Pour récupérer le chemin de ton appli java, tu dois pouvoir utiliser une fonction du genre getAbsolutePath() ou getCanonicalPath()
Par exemple :File directory = new File ("."); System.out.println ("Current directory's canonical path: " + directory.getCanonicalPath()); System.out.println ("Current directory's absolute path: " + directory.getAbsolutePath());
-
Salut et merci de m'avoir répondu
je dois donc mettre mon chemin d’accès dedans seulement:
File directory = new File ("./ Program Files/mon fichier/fichier .exe");
car cela ne marche pas
sinon j'ai trouver aussi cela mais il ne marche pas non plus :
String path=new File(".Program Files/mon fichier/fichier .exe").getAbsolutePath()
merci
-