Programación General > Java
Interpretar Comandos Linux A Traves De Java
(1/1)
Tisus:
Quisiera saber si puedo hacer el llamado de comados linux a traves de Java, y si hubiera como por favor decirmelo; y los lugares donde pueda haber ejemplos.
Gracias:
nicokiki:
Hola!!!!!!!!
Si vos lo q queres hacer es ejecutar comandos desde tu aplicacion, usa la clase Runtime y ejecuta el comando. Pensa q eso solo funcionara bajo GNU/LINUX y no DOS ni otro sistema operativo porque los comandos son distintos salvo por execpciones. Por ejemplo: dir funciona tanto bajo LINUX como en DOS. Pero si hicieras un ls, en DOS no andaria.
Salu2!!!!!
chuidiang:
Un detalle.
Por más que he probado, dir no funciona en dos, ni cls ni ningún comando "interno" (comandos que no tienen un .exe, sino que están dentro de command.com).
Runtime.getRuntime.exec("dir"); // da error
He hecho pruebas estilo "start cls", "cmd cls", etc y no he conseguido nada, ya que se me abren nuevas ventanas o sesiones nuevas, que se cierran inmediatamente y no se ven los resultados.
¿Hay alguna forma de hacerlo?
Sed buenos.
nicokiki:
Hola!!!!!!!!!!!!!
Mando un ejemplo de como lanzar una aplicacion desde JAVA. Hay algo medio "anti" multiplataforma porque para saber en q sistema operativo corro tomo el file separator pero puede traer muchos problemas. Es igual no importa, lo q importa es el ejemplo en si.
--- Código: Text --- private boolean reiniciarAplicacion(){ boolean resultado = true; Runtime rt = Runtime.getRuntime(); try { String oFileSeparator = System.getProperty("file.separator"); String[] cmd = new String[3]; if( oFileSeparator.equals( "\\" ) ) { cmd[0] = "cmd.exe"; cmd[1] = "/C"; cmd[2] = "C://ejecutable"; } if (oFileSeparator.equals( "/" )) { cmd[0] = ".\\ejecutable"; } Process proc = rt.exec(cmd); } catch (Throwable exc4) { System.out.println("No se puede iniciar.\n"); exc4.printStackTrace(); return false; } return resultado;}
Espero q siva
Salu2!!!!
chuidiang:
Hola de nuevo.
He probado esto
--- Código: Text ---class prueba{ public static void main (String[] args) { try { Runtime.getRuntime().exec ("cmd /c cls"); } catch (Exception e) { e.printStackTrace(); } }}
y no funciona (no borra la pantalla), pero tampoco da ningún error.
Sin embargo, desde ventana de ms-dos
cmd /c cls
funciona correctamente.
En general, para arrancar ejecutables no hay problema. El problema es el comando concreto cls. Todavía no he conseguido borrar la pantalla desde java.
También he probado a coger el getInputStream del Process que devuelve exec() y redirigirlo a la pantalla, pero obtengo un caracter extraño (ascii = 12), pero no se borra la pantalla.
Se bueno.
Navegación
Ir a la versión completa