Executer un path en JAVA

java -  
 java -
Bonjour à tous,

je souhaite lancer un fichier en chemin relatif mais je rencontre certaine difficultés :

j'utilise cette commande pour obtenir dynamiquement le répertoire du fichier :


String path = new File("truc.exe).getAbsolutePath();
          System.out.println("path = "+path);


Cependant je souhaite lancer le fichier grâce au chemin obtenu :

Comment puis-je faire cela SVP ?

dois-je utiliser runtime exec, si oui comment faire SVP ?

Merci
A voir également:

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

Oui, Runtime.exec() devrait fonctionner. Exemple : Lancement d'une commande avec Runtime exec.
https://docs.oracle.com/javase/9/docs/api/java/lang/Runtime.html

Mais si c'est juste pour démarrer le programme, sans récupérer son état, tu peux aussi utiliser Desktop.open()
https://docs.oracle.com/javase/9/docs/api/java/awt/Desktop.html
1
java
 
Bonjour,

je vous remercie d'avoir prêté attention à mon message mais dans les lien que vous m'avez fourni, je ne vois que des commande permettant d'exécuter des fichier avec un chemin en dur (absolu).
Pourriez vous me montrer commandent lancer (grace a runtime exec par exemple...) qui puisse chercher le fichier n'importe ou dans le Disque dur s'il-vous-plaît ?

merci
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020 > java
 
Il faut distinguer deux choses :
  • le chemin relatif de ton fichier par rapport au programme Java qui lance l'exec, que tu peux résoudre en chemin absolu avec le code que tu as mis dans ta question
  • le répertoire de travail, relatif à l'exécution du programme qui est lancé par l'exec, et là il faut considérer le paramètre File dir que l'on trouve dans les méthodes exec (inutile de distinguer chemin absolu ou relatif sur un objet File)

Mais pour éviter de répondre de manière incorrect il faudrait savoir dans quel cas tu te situes, notamment voir si la classe Desktop ne suffit pas, et dans ce cas chemin relatif ou absolu ça ne changera rien...
0
java
 
bonjour,

merci pour vos réponse mais je voulais savoir si je crée un chemin relatif, est-ce que ce dernier ne vas pas pointer au mauvaise endroit car j’essaie de résoudre ce problème-ci, mais en java et pas en C# comme l'article:

https://blogs.msdn.microsoft.com/appconsult/2017/06/23/accessing-to-the-files-in-the-installation-folder-in-a-desktop-bridge-application/

j'utilisais rundll32 mais je l'ai enlevé maintenant

rundll32 est dans un répertoire Windows et le fichier .\fichier.exe n’est pas dans ce répertoire. Il faudrait que la commande lance le chemin complet de l'application

Si je n’utilise plus rundll32, la commande ne vas pointer au mauvais endroit comme cela le faisait avant ?

Merci pour votre réponse
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020 > java
 
Que ce soit du chemin relatif ou absolu ça ne change pas grand chose, soit il trouve le fichier soit il ne le trouve pas, mais s'il l'a trouvé l'exécution sera la même en absolu ou relatif.

Seul peut varier le contexte d'exécution comme je le précisait avec le paramètre File dir.

Mais le mieux serait encore que tu fasses des tests, là j'ai l'impression que pour toi ça reste très théorique "si je fais ceci est-ce que ça ferait cela", rien ne vaut la pratique, on ne va pas couvrir tout les cas de figure alors qu'au premier test ça peut marcher...
0
java
 
Bonjour,

cela fonctionne sans soucis sur mon pc.

Merci

Cependant, est-il possible (à l'aide de runtime exec) de lancer un fichier se trouvant dans mon jar SVP ?

si oui, pourriez-vous me montre comment faire cela svp ?

Merci
0