User Tag List

Resultados 1 al 13 de 13

Tema: Ejecutar comando UNIX desde aplicación Java

  1. #1

    Fecha de ingreso
    Feb 2005
    Ubicación
    Londres
    Mensajes
    4,520
    Mencionado
    3 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    3
    Agradecer Thanks Received 
    16
    Thanked in
    Agradecido 4 veces en [ARG:2 UNDEFINED] posts

    Ejecutar comando UNIX desde aplicación Java

    Hola a todos, necesito que mi aplicación ejecute una serie de programas a través de la línea de comandos pero no hay manera, si quiero hacer un "ls -l" por ejemplo lo ejecuta sin problemas pero si tengo que ejecutar un programa propio instalado en el sistema no hay manera.
    He probado con el processBuilder y con el getRuntime().exec(comando) pero sin conseguir ningún resultado

    Código:
    Process p = Runtime.getRuntime().exec("/bin/sh /Users/Nakio/ejecutable.sh"); 
    try {
    	p.waitFor();
    	System.out.println(p.exitValue());
    } catch (InterruptedException e) {
    	e.printStackTrace();
    }
    El sh tiene permisos de ejecución y comando "/bin/sh /Users/Nakio/ejecutable.sh" funciona perfectamente desde el terminal

    Ayuda famigos!

    Saludos, Nakio.

  2. #2

    Fecha de ingreso
    Mar 2007
    Ubicación
    Barna
    Mensajes
    10,357
    Mencionado
    93 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    374
    Agradecer Thanks Received 
    1,801
    Thanked in
    Agradecido 951 veces en [ARG:2 UNDEFINED] posts


    Quiero decir, ¿qué error te da?

  3. #3

    Fecha de ingreso
    Sep 2008
    Ubicación
    WORLD 9 - WARP ZONE!
    Mensajes
    14,753
    Mencionado
    30 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    193
    Agradecer Thanks Received 
    1,627
    Thanked in
    Agradecido 656 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    288
    Pues que raro, porque tengo por ahi una aplicación que hacia uso de:

    java.lang.Process theProcess = java.lang.Runtime.getRuntime().exec("comando")
    y si me funciona desde Debian y también en ubuntu. Seguro que la aplicación en java ve el path al ejecutable.sh??

  4. #4

    Fecha de ingreso
    Feb 2005
    Ubicación
    Londres
    Mensajes
    4,520
    Mencionado
    3 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    3
    Agradecer Thanks Received 
    16
    Thanked in
    Agradecido 4 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por juanvvc Ver mensaje


    Quiero decir, ¿qué error te da?
    No se puede enseñar

    Saludos, Nakio.

    ---------- Post añadido a las 18:59 ---------- Post anterior a las 18:58 ----------

    Si que la ve porque cuando no tenía permisos el fichero me lo decía. Ahora con permisos y todo simplemente el programa hace como si la ejecución de ese mandato devolviese "nada"...

    Saludos, Nakio.

  5. #5

    Fecha de ingreso
    Sep 2008
    Ubicación
    WORLD 9 - WARP ZONE!
    Mensajes
    14,753
    Mencionado
    30 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    193
    Agradecer Thanks Received 
    1,627
    Thanked in
    Agradecido 656 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    288
    EDIT: comando "/bin/sh /Users/Nakio/ejecutable.sh" ¿no será un problema con los caracteres de escape "/" o algo asin verdad? porque de ser asi ya sabes por lo que tienes que sustituir el caracter "/" cuando lo metes entre comillas.

  6. #6

    Fecha de ingreso
    Feb 2005
    Ubicación
    Londres
    Mensajes
    4,520
    Mencionado
    3 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    3
    Agradecer Thanks Received 
    16
    Thanked in
    Agradecido 4 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por jduranmaster Ver mensaje
    EDIT: comando "/bin/sh /Users/Nakio/ejecutable.sh" ¿no será un problema con los caracteres de escape "/" o algo asin verdad? porque de ser asi ya sabes por lo que tienes que sustituir el caracter "/" cuando lo metes entre comillas.
    Pero ese problema sucede con "\" en lugar de con "/" no? no se, la historia es que si modifico por ejemplo el nombre del ejecutable por uno que no existe java me devuelve una excepción diciendo que el ejecutable no existe, si lo pongo correctamente simplemente no pasa nada...

    Saludos, Nakio.

  7. #7

    Fecha de ingreso
    Sep 2008
    Ubicación
    WORLD 9 - WARP ZONE!
    Mensajes
    14,753
    Mencionado
    30 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    193
    Agradecer Thanks Received 
    1,627
    Thanked in
    Agradecido 656 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    288

  8. #8

    Fecha de ingreso
    Feb 2005
    Ubicación
    Londres
    Mensajes
    4,520
    Mencionado
    3 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    3
    Agradecer Thanks Received 
    16
    Thanked in
    Agradecido 4 veces en [ARG:2 UNDEFINED] posts
    Lo he probado y nada, error de sintaxis no es porque si hago por ejemplo un "ls -l /User/Nakio/nakioStudio > /User/Nakio/muestraDir.txt" lo realiza perfectamente...

    Saludos, Nakio.

  9. #9

    Fecha de ingreso
    Sep 2008
    Ubicación
    WORLD 9 - WARP ZONE!
    Mensajes
    14,753
    Mencionado
    30 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    193
    Agradecer Thanks Received 
    1,627
    Thanked in
    Agradecido 656 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    288
    Prueba a añadir esto:


    java.io.BufferedReader stdInput = new java.io.BufferedReader(new InputStreamReader(process.getInputStream()));
    System.out.println("esta es la salida standard del comando:\n");
    java.lang.String s = null;
    while ((s = stdInput.readLine()) != null) {System.out.println(s);}
    ... y asi ves la salida que produce la ejecución de tu sh.

  10. #10

    Fecha de ingreso
    Feb 2005
    Ubicación
    Londres
    Mensajes
    4,520
    Mencionado
    3 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    3
    Agradecer Thanks Received 
    16
    Thanked in
    Agradecido 4 veces en [ARG:2 UNDEFINED] posts
    Ya lo probé y eso... la nada absoluta :

    Código:
    esta es la salida standard del comando:
    Saludos, Nakio.

  11. #11

    Fecha de ingreso
    Mar 2007
    Ubicación
    Barna
    Mensajes
    10,357
    Mencionado
    93 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    374
    Agradecer Thanks Received 
    1,801
    Thanked in
    Agradecido 951 veces en [ARG:2 UNDEFINED] posts
    Ahora sí que me he perdido... ¿por qué no nos puedes poner qué error te da? ¿hay que adivinarlo?

    la ejecución de ese mandato devolviese "nada"...
    ¿Nada de nada o cero? p.exitValue() devuelve un entero, así que no sé qué es "nada de nada"... ¿NaN?

    ¿Puede que te esté saltando IOException en el exec()?

  12. #12

    Fecha de ingreso
    Feb 2005
    Ubicación
    Londres
    Mensajes
    4,520
    Mencionado
    3 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    3
    Agradecer Thanks Received 
    16
    Thanked in
    Agradecido 4 veces en [ARG:2 UNDEFINED] posts
    Muy bien, cagada de mis partes, en el .sh tenía que poner el PATH de las aplicaciones que ejecuto...

    Gracias!

    Saludos, Nakio.

  13. #13

    Fecha de ingreso
    Sep 2008
    Ubicación
    WORLD 9 - WARP ZONE!
    Mensajes
    14,753
    Mencionado
    30 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    193
    Agradecer Thanks Received 
    1,627
    Thanked in
    Agradecido 656 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    288

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •