Запуск командной строки в Java

Есть ли способ запустить эту командную строку в приложении Java?

java -jar map.jar time.rel test.txt debug 

Я могу запустить его с помощью команды, но я не мог сделать это в Java.

 Runtime rt = Runtime.getRuntime(); Process pr = rt.exec("java -jar map.jar time.rel test.txt debug"); 

http://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html

Вы также можете посмотреть вывод следующим образом:

 final Process p = Runtime.getRuntime().exec("java -jar map.jar time.rel test.txt debug"); new Thread(new Runnable() { public void run() { BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream())); String line = null; try { while ((line = input.readLine()) != null) System.out.println(line); } catch (IOException e) { e.printStackTrace(); } } }).start(); p.waitFor(); 

И не забывайте, что если вы работаете в Windows, вам нужно поставить «cmd / c» перед вашей командой.

Чтобы избежать блокирования вызываемого процесса, если он выводит много данных на стандартный вывод и / или ошибку, вы должны использовать решение, предоставленное Craigo. Обратите внимание также, что ProcessBuilder лучше, чем Runtime.getRuntime (). Exec (). Это связано с несколькими причинами: он значительно улучшает аргументы, а также выполняет стандартный вывод ошибки (см. Также здесь ).

 ProcessBuilder builder = new ProcessBuilder("cmd", "arg1", ...); builder.redirectErrorStream(true); final Process process = builder.start(); // Watch the process watch(process); 

Я использую новую функцию «смотреть» для сбора этих данных в новом streamе. Этот stream завершится в вызывающем процессе, когда вызываемый процесс завершится.

 private static void watch(final Process process) { new Thread() { public void run() { BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream())); String line = null; try { while ((line = input.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } } }.start(); } 
 import java.io.*; Process p = Runtime.getRuntime().exec("java -jar map.jar time.rel test.txt debug"); 

Если у вас возникнут какие-либо дополнительные проблемы, подумайте о следующем: я предполагаю, что вышеупомянутое будет работать для вас:

Проблемы с Runtime.exec ()

 Runtime.getRuntime().exec("java -jar map.jar time.rel test.txt debug"); 

Вы пробовали команду exec в classе Runtime?

 Runtime.getRuntime().exec("java -jar map.jar time.rel test.txt debug") 

Время выполнения – Java-документация

 Process p = Runtime.getRuntime().exec("java -jar map.jar time.rel test.txt debug"); 

как насчет

 public class CmdExec { public static Scanner s = null; public static void main(String[] args) throws InterruptedException, IOException { s = new Scanner(System.in); System.out.print("$ "); String cmd = s.nextLine(); final Process p = Runtime.getRuntime().exec(cmd); new Thread(new Runnable() { public void run() { BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream())); String line = null; try { while ((line = input.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } } }).start(); p.waitFor(); } } 
  • Запуск одиночного теста из classа JUnit с использованием командной строки
  • как показать общие линии (обратный дифференциал)?
  • Команда Maven, чтобы определить, какой файл settings.xml использует Maven
  • Создайте приложение Android Studio через командную строку
  • изменение рабочего каталога команды из java
  • Дамп базы данных mysql в резервную копию открытого текста (CSV) из командной строки
  • Как запустить эмулятор Android из командной строки?
  • Запустить командную строку в качестве администратора
  • Поиск аргумента Аргумент аргумента командной строки для .NET
  • Бесполезное использование кошки?
  • Как ввести аргумент командной строки в IntelliJ IDEA?
  • Давайте будем гением компьютера.