Saltar al contenido

ejecutar el archivo desde el directorio definido con Runtime.getRuntime().exec

Te damos la bienvenida a proyecto on line, ahora vas a encontrar la solucíon que buscabas.

Solución:

Debería ser posible llamar al ejecutable con un directorio de trabajo específico usando Runtime.exec(String command, String[] envp, File dir)

como sigue:

Process process2=Runtime.getRuntime().exec("/data/data/my-package/files/myfile",
        null, new File("/data/data/my-package/files"));

tal vez sin la ruta completa a myfile

Process process2=Runtime.getRuntime().exec("myfile",
        null, new File("/data/data/my-package/files"));

Context#getFilesDir() en lugar de codificar, la ruta también debería funcionar y es más segura / más limpia que especificar la ruta usted mismo, ya que no se garantiza que /data/data/..
es siempre la ruta correcta para todos los dispositivos.

Process process2=Runtime.getRuntime().exec("myfile",
        null, getFilesDir()));

el problema con cd somewhere es que el directorio se cambia por un proceso diferente, por lo que la segunda llamada a exec en un nuevo Proceso no ve el cambio.

Funciona para mí cuando uso el siguiente método sobrecargado:

public Process exec (comando de cadena, cadena[] envp, directorio de archivo)

Por ejemplo:

File dir = new File("C:/Users/username/Desktop/Sample");
String cmd = "java -jar BatchSample.jar";
Process process = Runtime.getRuntime().exec(cmd, null, dir);

El comando simplemente almacena el comando que desea ejecutar en la línea de comandos. dir simplemente almacena la ruta de su archivo .jar para ser ejecutado.

Si te sientes a gusto, puedes dejar una división acerca de qué te ha impresionado de este ensayo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *