Exécuter .exe fichier en Java à partir de l'emplacement du fichier
- Je ouvrir un .fichier exe de mon programme Java. J'ai donc essayé de suivre le Premier code.
Process process = runtime.exec("c:\\program files\\test\\test.exe");
Mais j'obtenais une erreur. Ensuite, j'ai trouvé que le fichier exe a être lancé à partir de cet emplacement qui est c://program fichiers/test/seulement alors il sera ouvert avec des erreurs. J'ai donc décidé d'écrire .le fichier bat et exécuter de sorte qu'il sera de cd à cet emplacement et exécutez le .exe fichier.
Voici mon code:
BufferedWriter fileOut;
String itsFileLocation = "c:\\program files\\test\\"
System.out.println(itsFileLocation);
try {
fileOut = new BufferedWriter(new FileWriter("C:\\test.bat"));
fileOut.write("cd\\"+"\n");
fileOut.write("cd "+ itsFileLocation +"\n");
fileOut.write("test.exe"+"\n");
fileOut.write("exit"+"\n");
fileOut.close(); //Close the output stream after all output is done.
} catch (IOException e1) {
e1.printStackTrace();
} //Create the Buffered Writer object to write to a file called filename.txt
Runtime runtime = Runtime.getRuntime();
try {
Process process =runtime.exec("cmd /c start C:\\test.bat");
} catch (IOException e) {
e.printStackTrace();
}
Le code ci-dessus fonctionne parfaitement. Cependant, l'invite de commande est également ouvert à l'arrière de ma .exe (Application). Il se ferme qu'après l' .exe fichier de sorties..
J'ai besoin de clse mon invite de commande lorsque mon application stats.
Mon .fichier bat sera comme suit après il est écrit par le programme.
cd\
cd C:\Program Files\test\
test.exe
exit
OriginalL'auteur Dilip Rajkumar | 2012-05-21
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas besoin d'une console. Vous pouvez exécuter un processus à l'aide d'un répertoire de travail:
exec(String command, String[] envp, Fichier dir)
Exécute la chaîne spécifiée dans la commande dans un processus séparé
avec l'environnement et le répertoire de travail.
À l'égard de votre code, il devrait être...
/
comme un séparateur de fichiers sur windows -- au moins sur windows 7.Hay Merci je vais essayer et vous permet de connaître en quelques min...
Hay merci cela a fonctionné..
Merci pour votre aide..
En fait, nous n'avons pas besoin de donner le chemin d'accès complet de
test.exe
dans le premier paramètre deexec(String command, String[] envp, File dir)
. Donc, essentiellement,Runtime.getRuntime().exec("test.exe", null, new File("c:\\program files\\test\\"));
est assez bon.OriginalL'auteur Schifty
Vous pouvez utiliser Moment de l'exécution.exec(java.lang.String, java.lang.String[], java.io.Fichier) où vous pouvez définir le répertoire de travail.
Ou d'autre, vous pouvez utiliser ProcessBuilder comme suit:
Si possible, pouvez-vous donner le temps d'Exécution.exec exemple.. à l'égard de mon code.. merci d'avance..
Grâce Kuldeep, j'ai aussi essayé de ProcessBuilder.. j'obtiens le même problème..
L' .les fichiers exe besoin de quelques biens de fichier à partir de cet emplacement pour commencer.. je peux faire une seule chose est que je puisse régler ce chemin comme variable env.. je ne suis pas sûr que cela fonctionne..
Quelle est l'erreur que vous obtenez lorsque vous essayez cette solution? Cette solution est la bonne façon de faire ce que vous voulez, et ne produira pas le
cmd.exe
fenêtre vous souhaitez éviter (ni de produire des fichiers temporaires sur votre système).OriginalL'auteur Kuldeep Jain
Une autre façon de l'exécution d'un fichier est la suivante:
OriginalL'auteur BullyWiiPlaza
Le Code Standard pour l'Exécution de chauve-souris ou de tout autre par la ligne de commande à l'aide de java est :
et vous pouvez aller sur continuer pour plusieurs fichiers à l'aide de & supperator comme : &&
OriginalL'auteur Shaikh Arbaaz
Meilleure façon d'exécuter le fichier exe
faire de java.awt.Bureau de l'objet et de l'égalité de Bureau.getDesktop();
Desktop desktop = Desktop.getDesktop();
desktop.open("file path");
exécutez le fichier exe:
desktop.open("C:\\Windows\\System32\\cmd.exe");
ou
desktop.open("C:/Windows/System32/cmd.exe");
exécuter url :
desktop.browse(new URI("http://www.google.com"));
OriginalL'auteur Deepal Suranga Weerasuriya
Ce serait aussi travailler.
Il allait commencer l' .exe dans le fichier de localisation.
OriginalL'auteur Ifesinachi Bryan