que proyecto pom librerias incluir hacer generar externas ejecutable crear con java windows batch-file exe bufferedreader

proyecto - Ejecuta el archivo.exe en Java desde la ubicación del archivo



jar ejecutable maven (6)

El Código estándar para ejecutar bat o cualquier otra línea de comando mediante java es:

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

y puede continuar con varios archivos usando & supperator como: &&

Tengo que abrir un archivo .exe de mi programa Java. Así que intenté seguir el código primero.

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

Pero estaba recibiendo algún error. Luego descubrí que el archivo ejecutable tiene que iniciarse desde esa ubicación que es c: // program files / test / solo entonces se abrirá sin errores. Así que decidí escribir un archivo .bat y ejecutarlo para que se cd a esa ubicación y ejecute el archivo .exe.

Lo siguiente es mi código:

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();    }

El código anterior funciona perfectamente. Sin embargo, el símbolo del sistema también se abre en la parte posterior de mi .exe (aplicación). Se cierra solo después de que el archivo .exe salga ...

Necesito hacer clic en mi indicador de comando cuando mis estadísticas de aplicación.

Mi archivo .bat será como el siguiente después de que esté escrito por el programa.

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


Esto también funcionaría.

Process process = new ProcessBuilder("C://Users//test//Downloads//Termius.exe").start();

Se iniciaría el .exe en esa ubicación de archivo.


La mejor manera de ejecutar el archivo exe

hacer java.awt.Desktop objeto e igual Desktop.getDesktop ();

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

ejecutar el archivo exe:

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

o

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

ejecutar url:

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


No necesitas una consola. Puede ejecutar un proceso utilizando un directorio de trabajo:

exec (comando de cadena, cadena [] envp, archivo dir)

Ejecuta el comando de cadena especificado en un proceso separado con el entorno y el directorio de trabajo especificados.

  • comando es la ubicación del .exe
  • envp puede ser nulo
  • dir, es el directorio de tu .exe

Con respecto a su código debe ser ...

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


Otra forma de ejecutar un archivo es la siguiente:

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