Comment exécuter un programme java avec l'aide de l'Exécution.getRuntime().exec().
Par exemple nous avons le fichier java chemin c:/java/abc.java. Merci de m'aider avec le code.
CreateProcess: c:\j2sdk1.4.0\bin\helloworld erreur=2 C'est le moteur d'exécution de message d'exception Qui ne donne pas vraiment beaucoup à aller hors de. Pouvez-vous modifier votre question à inclure un simple fichier helloworld et l'ensemble de la trace de la pile?
signifie Win32 l' CreateProcess retourne un 2 que le code d'erreur lorsqu'il ne trouve pas la commande que vous spécifiez; plus précisément, lorsque la commande ne fait pas référence à un fichier exécutable sur son chemin de recherche.
Regardez cette DONC, la question pour une information plus complète "Runtime.getRuntime().exec()" code, et aussi à cet extrait.
Ce code crée un shell (comme dans Runtime.getRuntime().exec("cmd /K")), dans lequel vous écrivez sur sdtin quelle que soit la commande que vous souhaitez exécuter.
L'intérêt de cette démarche est de réutiliser le processus du shell de bénéficier d'une commande précédente: il vous exécuter un"cd", puis exécutez une"dir", cette dernière commande affiche le contenu du répertoire référencé par le cd commande.
Il en serait de même pour PATH paramètres, juste avant de les utiliser javac ou java.
try{//Execute a command with an argument that contains a spaceString[] commands =newString[]{"grep","hello world","/tmp/f.txt"};
commands =newString[]{"grep","hello world","c:\\Documents and Settings\\f.txt"};Process child =Runtime.getRuntime().exec(commands);}catch(IOException e){}
En supposant que abc.java contient une méthode main que vous voulez exécuter:
Qui ne donne pas vraiment beaucoup à aller hors de. Pouvez-vous modifier votre question à inclure un simple fichier helloworld et l'ensemble de la trace de la pile?
OriginalL'auteur Chris Bunch
Ne pas oublier que:
vous pouvez avoir à définir/mettre à jour la variable d'environnement et de CHEMIN avant d'exécuter votre commande java
CreateProcess: c:\j2sdk1.4.0\bin\helloworld erreur=2
signifie Win32 l'
CreateProcess
retourne un 2 que le code d'erreur lorsqu'il ne trouve pas la commande que vous spécifiez; plus précisément, lorsque la commande ne fait pas référence à un fichier exécutable sur son chemin de recherche.Regardez cette DONC, la question pour une information plus complète "
Runtime.getRuntime().exec()
" code, et aussi à cet extrait.Ce code crée un shell (comme dans
Runtime.getRuntime().exec("cmd /K")
), dans lequel vous écrivez sursdtin
quelle que soit la commande que vous souhaitez exécuter.L'intérêt de cette démarche est de réutiliser le processus du shell de bénéficier d'une commande précédente: il vous exécuter un"
cd
", puis exécutez une"dir
", cette dernière commande affiche le contenu du répertoire référencé par lecd
commande.Il en serait de même pour
PATH
paramètres, juste avant de les utiliserjavac
oujava
.OriginalL'auteur VonC
Vous devez utiliser ProcessBuilder au lieu de l'Exécution. Utilisation de base, c'est comme:
Vous trouverez plus de code sous le lien ci-dessus. Voir aussi cette question.
OriginalL'auteur Fabian Steeg
Vous voulez dire que vous voulez un programme Java pour exécuter un autre programme Java. Ce fil peut être utile dans ce cas.
OriginalL'auteur Adeel Ansari
OriginalL'auteur Naefy
Veuillez voir les excellentes ressources qui s'appelait javaalmanac.
http://www.exampledepot.com/egs/java.lang/Exec.html
OriginalL'auteur Thorbjørn Ravn Andersen