¿Como Usar El Método ProcessBuilder De Java?

He formulado esta pregunta con el fin de que pudieran ayudarme o explicarme mi duda que ha surgido por la necesidad de ejecutar comandos y este método ProcessBuilder es utilizado para ello. Aclarando el punto necesito ayuda porque no entiendo como utilizar esta clase. El código que recolecte es este:

 ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2");
 Map<String, String> env = pb.environment();
 env.put("VAR1", "myValue");
 env.remove("OTHERVAR");
 env.put("VAR2", env.get("VAR1") + "suffix");
 pb.directory(new File("myDir"));
 Process p = pb.start();

Aquí surge el problema no entiendo como usar este código.

Obtuve este código de la pagina: http://docs.oracle.com/javase/6/docs/api/java/lang/ProcessBuilder.html

1
задан 27.12.2016, 18:33
0 ответов

Ты скажешь класс ProcessBuilder, и как хорошо это говорит Ваше имя, берется в создании процессов. Более специально, эта использована, чтобы перемещать параметры в приложения:

// en linux
final String commands[] = {"ls", "/"}; // estos son los comandos a ejecutar, seria: 
                                      // usuario@usuario-pc:~$ ls /

Process process = new ProcessBuilder(commands).start(); // se crea el proceso
                                                       // usando los comandos


// ProcessBuilder.directory(new File("ruta")); donde ruta = la carpeta del ejecutable

// Se lee la salida
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);

String line;
while ((line = br.readLine()) != null) {
  System.out.println(line);
}

// Esperamos que el proceso termine
try {
  int exitValue = process.waitFor();
  System.out.println("\nCódigo de salida: "+ exitValue);
} catch (InterruptedException e) {
  e.printStackTrace(System.err);
}

Документация класса ProcessBuilder - docs.oracle.com

1
ответ дан 03.12.2019, 17:58
  • 1
    Друг происходит ошибка не выполняет мне команду, которая является ln-s, если podrí схвати помогать мне спасибо –  28.12.2016, 14:21
  • 2
    ls - команда LINUX, следовательно оно не функционирует в других операционных системах: В windows: конец String commands [] = { " cmd" " / C" " dir" }; –  28.12.2016, 21:33
  • 3
    Но нет команды android, которую выполняла бы funció n создания ссылки simbó lico, потому что во мне неутомимый я искал, я попытался со многими как ln-sv и ln-sf, даже даже этот, который encontré в вопросе ln [-fhinsv] (вопрос этот: stackoverflow.com/questions/34222347/… ). Спасибо –  28.12.2016, 21:42
  • 4
    Мы находимся в вопросе: ¿ Как Использование Mé весь ProcessBuilder De Java?, ты можешь открывать другой вопрос с новостью. –  28.12.2016, 22:00
  • 5
    Ok спасибо, seguiré городской совет. –  28.12.2016, 22:14