Exécuter le fichier .exe en Java à partir de l’emplacement du fichier

Je dois ouvrir un fichier .exe à partir de mon programme Java. J’ai donc essayé le code suivant.

Process process = runtime.exec("c:\\program files\\test\\test.exe"); 

Mais je me trompais. Ensuite, j’ai découvert que l’exe doit être lancé à partir de cet emplacement c: // program files / test / seulement alors il s’ouvrira sans erreurs. J’ai donc décidé d’écrire un fichier .bat et de l’exécuter de sorte qu’il cd à cet emplacement et d’exécuter le fichier .exe.

Voici mon code:

 BufferedWriter fileOut; Ssortingng 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 commandes est également ouverte à l’arrière de mon .exe (application). Il se ferme uniquement après la fermeture du fichier .exe.

J’ai besoin d’insérer mon invite de commande lorsque mes statistiques d’application.

Mon fichier .bat sera comme suit après avoir été écrit par le programme.

 cd\ cd C:\Program Files\test\ test.exe exit 

Vous n’avez pas besoin d’une console. Vous pouvez exécuter un processus en utilisant un répertoire de travail:

exec (commande Ssortingng, Ssortingng [] envp, répertoire dir

Exécute la commande de chaîne spécifiée dans un processus distinct avec l’environnement et le répertoire de travail spécifiés.

  • commande est l’emplacement du fichier .exe
  • envp peut être nul
  • dir, est le répertoire de votre .exe

En ce qui concerne votre code, il devrait être …

 Runtime.getRuntime().exec("c:\\program files\\test\\test.exe", null, new File("c:\\program files\\test\\")); 

Vous pouvez utiliser Runtime.exec (java.lang.Ssortingng, java.lang.Ssortingng [], java.io.File) où vous pouvez définir le répertoire de travail.

Ou bien vous pouvez utiliser ProcessBuilder comme suit:

 ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2"); pb.directory(new File("myDir")); Process p = pb.start(); 

Une autre façon d’exécuter un fichier est la suivante:

 import java.awt.Desktop; import java.io.File; public static void open(Ssortingng targetFilePath) throws IOException { Desktop desktop = Desktop.getDesktop(); desktop.open(new File(targetFilePath)); } 

Le code standard pour exécuter chauve-souris ou toute autre ligne de commande utilisant java est:

 runtimeProcess = Runtime.getRuntime().exec("cmd /c start cmd.exe /C\""+backup_path+"\""); int processComplete = runtimeProcess.waitFor(); 

et vous pouvez continuer sur plusieurs fichiers en utilisant & supperator comme: &&

Meilleur moyen d’exécuter un fichier exe

créer l’object java.awt.Desktop et égal à Desktop.getDesktop ();

Desktop desktop = Desktop.getDesktop(); desktop.open("file path");

Exécuter le fichier exe:

desktop.open("C:\\Windows\\System32\\cmd.exe");

ou

desktop.open("C:/Windows/System32/cmd.exe");

lance l’url:

desktop.browse(new URI("http://www.google.com"));