2014-10-16 2 views
1

Открытие окна Run (Windows + r) и запуск команды -> Я хочу запустить эту же команду с помощью Java. Я пробовал это, используя:Вызов команды в окне запуска

Runtime.getRuntime().exec(command); 

Но это не сработало. Пожалуйста, дайте мне знать, как этого достичь.

+0

делает [это] (http://stackoverflow.com/questions/15464111/run-cmd-commands-through-java) и [это] (HTTP: //www.mkyong.com/java/how-to-execute-shell-command-from-java/) help –

+0

Я проверил эту ссылку раньше, но нет, мне это не помогло. Проблема заключается в следующем: если запустить команду с помощью окна «Запуск», то она работает, но одна и та же команда не работает при попытке «командной строки». Следовательно, предоставленная связь мне не очень помогла. – user182944

ответ

1

Используйте эту команду:

Runtime.getRuntime().exec(new String[] {"cmd.exe", "/c", "start", "winword"}); 

Это успешно работает Microsoft Word (winword), которая не является исполняемым непосредственно через ЦМД. Команда start ведет себя так же, как и выполнение.

Добавьте параметры после, как это:

Runtime.getRuntime().exec(new String[] {"cmd.exe", "/c", "start", "winword", "C:\\Example.docx"}); 
+0

Это решило мою проблему. Спасибо за помощь. – user182944

+0

Как вызвать эту команду: «запустить демонстрацию:» ​​-ping -ip 172.18.102.65 «используя« метод выполнения Runtime »? Я пробовал это: 'Runtime.getRuntime(). Exec (new String [] {" cmd.exe ","/c "," start "," demo: \ "-ping -ip 172.18.102.65 \" "}) ; но это не сработало. Я получаю сообщение об ошибке: 'Windows не может найти -ping 'Можете ли вы направить меня на это? – user182944

+0

@ user182944 Я понятия не имею, что должна делать эта команда, и она не работает при запуске на моем компьютере. Есть ли программа на вашем компьютере с именем 'start demo', которую вы пытаетесь запустить? – Pokechu22

2

Вы можете попробовать это:

ProcessBuilder pb=new ProcessBuilder("explorer"); 
     pb.redirectErrorStream(true); 
     Process process=pb.start(); 
     BufferedReader inStreamReader = new BufferedReader(
      new InputStreamReader(process.getInputStream())); 

     while(inStreamReader.readLine() != null){ 
      //do something with commandline output. 
     }