Executer un executable externe en Java [2017]
Résolu
Utilisateur anonyme
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour/Bonsoir,
je cherche à lancer une application externe avec du code Java, l'app se lance dans le Gestionnaire de taches mais n'apparait pas.
Voici le code que j'utilise (qui est faux je pense):
je cherche à lancer une application externe avec du code Java, l'app se lance dans le Gestionnaire de taches mais n'apparait pas.
Voici le code que j'utilise (qui est faux je pense):
try {
String[] cmdAndArgs = new String[]{"cmd", "/c", "path"};
Runtime.getRuntime().exec(cmdAndArgs);
}
catch (Exception e) {
e.printStackTrace();
}
A voir également:
- Executer un executable externe en Java [2017]
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Chkdsk disque dur externe - Guide
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
2 réponses
Bonjour,
Pas besoin de "cmd /c" fait juste ta commande "path"
Remarque : si tu es censé récupérer un affichage il faut rediriger les flux.
Pas besoin de "cmd /c" fait juste ta commande "path"
Remarque : si tu es censé récupérer un affichage il faut rediriger les flux.
Même si il le sujet est résolu il y a quelque chose de plus simple :
Desktop.getDesktop().open((new File("path")));
Cela dépend en fait de ce que l'on veux faire...
Runtime.exec est fait pour démarrer un programmer et interagir avec, en lui passant des paramètres, en récupérant les flux d'entrée/sortie, attendre la fin du processus, etc.
Desktop.open est fait pour ouvrir un fichier, ça l'ouvre avec le programme par défaut configuré sur le système d'exploitation (donc pas forcément celui qu'on voudrait)
Runtime.exec est fait pour démarrer un programmer et interagir avec, en lui passant des paramètres, en récupérant les flux d'entrée/sortie, attendre la fin du processus, etc.
Desktop.open est fait pour ouvrir un fichier, ça l'ouvre avec le programme par défaut configuré sur le système d'exploitation (donc pas forcément celui qu'on voudrait)
Je n'ai jamais eu l'occasion jusqu'à aujourd'hui de gérer les flux.
Il n'existe pas d'alternative au c# de :
?
Après ce qu'il peut se passer c'est que le programme soit en attente de saisir quelque chose au clavier par exemple, dans ce cas il faut aussi se brancher sur ce flux.
Remarque : dans certains cas le code précédent (qui n'était qu'un exemple) peut également poser problème car on ne lit les messages d'erreurs qu'une fois tous les messages normaux lus, pour être complet il faudrait mettre ces deux codes dans des threads en parallèles qui affichent les deux flux en même temps.