Comandos CMD desde Java

Iniciado por LuisCaTre, 23 Enero 2018, 03:31 AM

0 Miembros y 1 Visitante están viendo este tema.

LuisCaTre

Bueno, hace tiempo hice un programa en Python muy básico que ejecuta comandos del CMD, para ello use la función os.system("comando").

Hay algún método o clase que haga lo mismo??, Y si es así, cual es?

Gracias por su ayuda.

Enviado desde mi M1092R mediante Tapatalk

engel lex

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

rub'n

#2
Un ejemplo que puede servir, básico, se te abrira la cmd,  :P pero eso se puede ajustar para lo que deseas.
Código (java) [Seleccionar]

import javax.swing.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

   private final JTextArea area = new JTextArea();

   public Main() throws IOException, InterruptedException {
       init();
   }
   private void init() throws IOException, InterruptedException {
       final String cmd[] = new String[3]; // 3 posiciones para los comandos separados
       cmd[0] = "cmd";
       cmd[1] = "/c";
       cmd[2] = "start";

       Process p = Runtime.getRuntime().exec(cmd); //tambien sirve new String[]{"cmd","/c","start"};
       p.waitFor();
       try(BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()))) {
           final StringBuilder sb = new StringBuilder();
           String data = "";
           while( (data = r.readLine() ) != null) {
               sb.append(data);
               sb.append("\n");
           }
           println(sb.toString());
           area.setText(sb.toString());
       }
       JOptionPane.showMessageDialog(null,area,"Informacion",1);
   }
   static void println(final String s) {System.out.println(s); }
   public static void main(String[] args) throws IOException, InterruptedException, ClassNotFoundException, UnsupportedLookAndFeelException, InstantiationException, IllegalAccessException {
       UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
       new Main();
   }
}



Y Aquí otro comando de ejemplo, mvn -version, que arroja la versión de maven de mi pc



rubn0x52.com KNOWLEDGE  SHOULD BE FREE!!!
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen

LuisCaTre

Cita de: rub'n en 23 Enero 2018, 07:05 AM
Un ejemplo que puede servir, básico, se te abrira la cmd,  :P pero eso se puede ajustar para lo que deseas.
Código (java) [Seleccionar]

import javax.swing.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

   private final JTextArea area = new JTextArea();

   public Main() throws IOException, InterruptedException {
       init();
   }
   private void init() throws IOException, InterruptedException {
       final String cmd[] = new String[3]; // 3 posiciones para los comandos separados
       cmd[0] = "cmd";
       cmd[1] = "/c";
       cmd[2] = "start";

       Process p = Runtime.getRuntime().exec(cmd); //tambien sirve new String[]{"cmd","/c","start"};
       p.waitFor();
       try(BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()))) {
           final StringBuilder sb = new StringBuilder();
           String data = "";
           while( (data = r.readLine() ) != null) {
               sb.append(data);
               sb.append("\n");
           }
           println(sb.toString());
           area.setText(sb.toString());
       }
       JOptionPane.showMessageDialog(null,area,"Informacion",1);
   }
   static void println(final String s) {System.out.println(s); }
   public static void main(String[] args) throws IOException, InterruptedException, ClassNotFoundException, UnsupportedLookAndFeelException, InstantiationException, IllegalAccessException {
       UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
       new Main();
   }
}



Y Aqui otro comando de ejemplo, mvn -version, version de maven

Gracias men, no entendí mucho, pero ya veré la forma de hacerlo funcionar.

Enviado desde mi M1092R mediante Tapatalk

rub'n

#4
Cita de: LuisCaTre en 23 Enero 2018, 19:09 PM
Gracias men, no entendí mucho, pero ya veré la forma de hacerlo funcionar.

Enviado desde mi M1092R mediante Tapatalk

Tu como que quieres es que te hagan la tarea, en realidad programaste algo en python? parecido ?  NO TE REGAÑO

e igual puedes jugarte editando las lineas 15, 16, 17

La magia esta aquí, pero debes de poner de tu parte tambien
Código (java) [Seleccionar]

Runtime.getRuntime().exec(COMANDOS);


Comandos pueden ser un String, array de String[] de varias formas con el valor correspondiente al comando a ejecutar dependiendo el Sistema Operativo aquí es con guindow$

  • Un array de tipo  String[]{"cmd","/c","start"};
  • Un String con el comando "cmd /c start"

Código (java) [Seleccionar]
final String cmd[] = new String[3]; // 3 posiciones para los comandos separados
       cmd[0] = "cmd";
       cmd[1] = "/c";
       cmd[2] = "start";  


Este array en cada posición almacena un String correspondiente al comando a ejecutarse, hay mas maneras.



rubn0x52.com KNOWLEDGE  SHOULD BE FREE!!!
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen

LuisCaTre

Si lo hice, en Python hay un módulo que se llama os y una función(de ese módulo obviamente) que es así:

os.system("cd Desktop") por ejemplo. Lo hice para no tener que escribir códigos una y otra vez para quitar el virus del acceso directo de las USB, ya sabes, ese típico virus que se quita con "attrib /d /s.........".

No es mentira, por eso creo que debe haber un equivalente en Java.
No te tenido tiempo para probar el código que me diste, probablemente lo haga hasta el viernes, ya te avisaré cuando me funcione, pero por lo pronto gracias :)

rub'n

#6
Cita de: LuisCaTre en 24 Enero 2018, 05:52 AM
Si lo hice, en Python hay un módulo que se llama os y una función(de ese módulo obviamente) que es así:

os.system("cd Desktop") por ejemplo. Lo hice para no tener que escribir códigos una y otra vez para quitar el virus del acceso directo de las USB, ya sabes, ese típico virus que se quita con "attrib /d /s.........".

No es mentira, por eso creo que debe haber un equivalente en Java.
No te tenido tiempo para probar el código que me diste, probablemente lo haga hasta el viernes, ya te avisaré cuando me funcione, pero por lo pronto gracias :)

Si tee da la gana de hasta ser dios con java puedes serlo, recuerda que es una gran plataforma y bla bla  ;)

ese comando claro que se puede usar desde luego que si, seria interesante probar, he visto utilidades para limpiar windows con java.

https://foro.elhacker.net/java/cambiar_atributos_de_carpetas_ocultas_por_virus_desde_una_aplicacion_jar-t327747.0.html;msg1615018

Ahorita ando encangrejao en otra cosa, pero estamos pendiente.  ;D


rubn0x52.com KNOWLEDGE  SHOULD BE FREE!!!
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen

LuisCaTre

#7
No tengo el virus ahora, no estoy en mi compu. Lo siento.
Sobre el programa, fue muy básico, por eso no creo que debería haber complicaciones en Java.
No tiene mucho que empecé con Java, estoy aprendiendo aún.

LuisCaTre

Este es.

Enviado desde mi M1092R mediante Tapatalk