Foro de elhacker.net

Programación => Java => Mensaje iniciado por: zer01 en 29 Noviembre 2007, 22:17 pm



Título: Mantener CMD visible [leanlo, y entendereis xD]
Publicado por: zer01 en 29 Noviembre 2007, 22:17 pm
Buenas,

Tengo un pequeño problema, estoy haciendo un programa que cuando abras el archivo .jar te hace una serie de preguntas, y luego abra el cmd.exe y escriba un comando.

Todo hasta ahi bien, incluso escribe el comando perfectamente. El unico problema, esque la ventana del CMD queda invisible y solo la puedes cerrar atraves del taskmgr.

Entonces mi pregunta es, si una vez escrito este comando en el cmd, la ventana podria APARECER.

Código:
try {
           
            Process p = Runtime.getRuntime().exec("ping -t 127.0.0.1");
           
            BufferedReader stdInput = new BufferedReader(new
                    InputStreamReader(p.getInputStream()));
           
            BufferedReader stdError = new BufferedReader(new
                    InputStreamReader(p.getErrorStream()));
           
            // read the output from the command
           
            System.out.println("Here is the standard output of the command:\n");
            while ((s = stdInput.readLine()) != null) {
                System.out.println(s);
            }
           
            // read any errors from the attempted command
           
            System.out.println("Here is the standard error of the command (if any):\n");
            while ((s = stdError.readLine()) != null) {
                System.out.println(s);
            }
           
            System.exit(0);
        } catch (IOException e) {
            System.out.println("exception happened - here's what I know: ");
            e.printStackTrace();
            System.exit(-1);
        }

Porque digamos, que si estoy haciendo un ping -t al localhost hasta que se "muera" me gustaria ver que esta pasando, y no se quedase silencioso.

Gracias :x


Título: Re: Mantener CMD visible [leanlo, y entendereis xD]
Publicado por: Casidiablo en 30 Noviembre 2007, 15:09 pm
Intenta así:

Código:
try {
           
            Process p = Runtime.getRuntime().exec("cmd /C ping -t 127.0.0.1");
           
            BufferedReader stdInput = new BufferedReader(new
                    InputStreamReader(p.getInputStream()));
           
            BufferedReader stdError = new BufferedReader(new
                    InputStreamReader(p.getErrorStream()));
           
            // read the output from the command
           
            System.out.println("Here is the standard output of the command:\n");
            while ((s = stdInput.readLine()) != null) {
                System.out.println(s);
            }
           
            // read any errors from the attempted command
           
            System.out.println("Here is the standard error of the command (if any):\n");
            while ((s = stdError.readLine()) != null) {
                System.out.println(s);
            }
           
            System.exit(0);
        } catch (IOException e) {
            System.out.println("exception happened - here's what I know: ");
            e.printStackTrace();
            System.exit(-1);
        }

Pero ten en cuenta esto impide la posibilidad de portabilidad :( aunque se puede arreglar con unos ajustes.

Un saludo!


Título: Re: Mantener CMD visible [leanlo, y entendereis xD]
Publicado por: egyware en 12 Diciembre 2007, 15:26 pm

Pero ten en cuenta esto impide la posibilidad de portabilidad :( aunque se puede arreglar con unos ajustes.


Eso se puede arreglar usando las propiedades que te entrega System (os.name)
usando un String al comando a llamar por ejemplo si es windows usas cmd o linux usas bash

y esop un aporte sin gracia
por parte mia  :-X :-\ :-[