Java - Process() en linux

 
Vista:

Process() en linux

Publicado por jose luis cetina avila (113 intervenciones) el 02/11/2006 06:41:01
Hola, alguien me podría ayudar, lo que pasa es que yo utilizaba el process para ejecutar algun "proceso" del sistema operativo
winxp de la siguiente forma
Process p = Runtime.getRuntime().exec ("rundll32 SHELL32.DLL,ShellExec_RunDLL "+"ARCHIVO_EJECUTABLE.EXTENSION"

PERO quisiera saber como se podria utilizar este pero linux, ya que quisiera ejecutar algun comando o proceso, por ejemplo la
instrucción ps -ax, o sea por ejemplo poner un menu en java y cuando aprete el boton x salga la consola o desde el mismo
frame lo que arroja la instruccion ps -ax o algo por estilo.
alguien tiene idea?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Process() en linux

Publicado por Tom (1559 intervenciones) el 02/11/2006 08:34:55
Process p = Runtime.getRuntime().exec (""ARCHIVO_EJECUTABLE.EXTENSION" )
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Process() en linux

Publicado por José Luis Cetina (113 intervenciones) el 02/11/2006 17:40:40
HOla Tom, realmente si me ayudaste, pero tengo una pequeña duda, el process si me ejecuta cualquier proceso que desee, pero como le haria para poder "ejecutar" algun commando de linux por ejemplo, que tenga un boton que cuando
aprete click te muestre desde un system.out.print o desde la misma consola en linux lo que hace el commando ps o el commando ifconfig o alguno de esos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Process() en linux

Publicado por Tom (1559 intervenciones) el 03/11/2006 08:02:10
Tienes que crear streams correspondientes a los del proceso que lanzas. En Unix, un proceso usa, por defecto tres canales, el de entrada, el de salida, y el de salida de error.

Tienes muchos ejemplos por la red. Ahí va uno que ejecuta el compilador de java, javac, y captura la salida:

String exec = "javac " + Filename;
Runtime r = Runtime.getRuntime();
Process p = r.exec(exec);
try {
int exitVal = p.waitFor();
if (exitVal != 0){
InputStream stderr = p.getErrorStream();
InputStreamReader isr = new InputStreamReader (stderr);
BufferedReader br = new BufferedReader(isr);
String line = null;
while ( (line = br.readLine()) != null)
Sytem.out.println(line);
}
}
catch (java.lang.InterruptedException ie){ie.printStackTrace();}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Process() en linux

Publicado por José Luis Cetina (113 intervenciones) el 03/11/2006 13:02:26
hola, tom, muchas gracias por la ayuda, ya tengo entendi todo lo que me haz dicho, solamente tengo una duda mas, mira lo que pasa es que estoy haciendo un pequeño programita el cual necesita ejecutar algunas instrucciones pero por
ejemplo, en el programa para que se ejecuten estas intrucciones la persona debe de ser ROOT, entonces si yo pongo en el process "su", el programa no muestra nada, o sea, lo que quisiera saber como debo "logearme" desde el mismo java, por que cuando pongo en el process SU, realmente no muestra ninguna salida y lo que quisiera es que mediante un cuadro de dialogo puedan proporcionar la contraseña del root y poder despues ejecutarse los procesos que necesito.
sabes algo respecto a esto?

Salu2s
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar