Process p=Runtime.getRuntime().exec()
Publicado por iGNASI85 (23 intervenciones) el 11/08/2006 01:22:48
Buenas, mi duda es acerca del "procedimiento" del título de mi duda:
Process p=Runtime.getRuntime().exec()
Y es que cuando en my aplicación hago una llamada a un script por ejemplo, éste solo se ejecuta si el script se encuentra en el mismo directorio raíz donde se encuentra el ejecutable de la clase de la aplicación madre; me explico:
Directorio A:
- Makefile (donde compilo la clase madre haciendo des de consola make gui).
- rungui.sh (lanzador de la interfície gráfica de mi programa, no deja de ser un java nombre_clase).
- Carpeta src donde en su interior hay varias subcarpetas, cada una de ellas contiene los archivos .java de las distintas clases que uso.
- Carpeta Fibonacci (un ejemplo real), esta contiene:
* Fibonacci.class
* Fibonacci.java
* Fibonacci.jar
* Makefile (el makefile de la clase Fibonacci.java)
* runap.sh (script que ejecuta la clase Fibonacci)
Pues bien, si e el código de mi programa (y sin modificar la estructura mencionada), hago lo siguiente:
Process p=Runtime.getRuntime().exec("./Fibonacci/runap.sh");
La cosa no funciona, no se llama al proceso. En canvio si muevo los archivos de la carpeta Fibonacci a la carpeta madre ".", y des del código de la aplicación principal hago:
Process p=Runtime.getRuntime().exec("./runap.sh");
La cosa funciona. A mi me interesaría que el script se ejecutase fuera cual fuera su ubicación, ya que no sólo trabajo con la aplicación Fibonacci, sino que utilizo muchas otras, y es un engorro y muy feo tener que copiar todos los archivos (y esparcirlos) en la carpeta madre.
Muchas gracias y perdonar por la extensión
Process p=Runtime.getRuntime().exec()
Y es que cuando en my aplicación hago una llamada a un script por ejemplo, éste solo se ejecuta si el script se encuentra en el mismo directorio raíz donde se encuentra el ejecutable de la clase de la aplicación madre; me explico:
Directorio A:
- Makefile (donde compilo la clase madre haciendo des de consola make gui).
- rungui.sh (lanzador de la interfície gráfica de mi programa, no deja de ser un java nombre_clase).
- Carpeta src donde en su interior hay varias subcarpetas, cada una de ellas contiene los archivos .java de las distintas clases que uso.
- Carpeta Fibonacci (un ejemplo real), esta contiene:
* Fibonacci.class
* Fibonacci.java
* Fibonacci.jar
* Makefile (el makefile de la clase Fibonacci.java)
* runap.sh (script que ejecuta la clase Fibonacci)
Pues bien, si e el código de mi programa (y sin modificar la estructura mencionada), hago lo siguiente:
Process p=Runtime.getRuntime().exec("./Fibonacci/runap.sh");
La cosa no funciona, no se llama al proceso. En canvio si muevo los archivos de la carpeta Fibonacci a la carpeta madre ".", y des del código de la aplicación principal hago:
Process p=Runtime.getRuntime().exec("./runap.sh");
La cosa funciona. A mi me interesaría que el script se ejecutase fuera cual fuera su ubicación, ya que no sólo trabajo con la aplicación Fibonacci, sino que utilizo muchas otras, y es un engorro y muy feo tener que copiar todos los archivos (y esparcirlos) en la carpeta madre.
Muchas gracias y perdonar por la extensión
Valora esta pregunta


0