запуск терминала из приложения - PullRequest
1 голос
/ 17 октября 2010

Я создал приложение, используя Netbeans 6.9. В приложении я хочу, чтобы, когда пользователь нажимал на кнопку запуска, терминал (командная строка) открывался, и на терминале должен отображаться некоторый текст. Текст на самом деле команда. Я хочу, чтобы команда выполнялась на терминале. Кто-нибудь может мне помочь, пожалуйста. Я написал следующий код ....

class test extends Exception{  
    public static void main(String arg[]) {  
        String command = "cmd.exe/start cmd";  
        System.out.println(command);  
        try {  
            Process child = Runtime.getRuntime().exec(command);  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
}

Но это дает следующую ошибку ...

cmd.exe / start cmd
java.io.IOException: не удается запустить программу «cmd.exe / start»: ошибка CreateProcess = 2,
Система не может найти указанный файл
at java.lang.ProcessBuilder.start (ProcessBuilder.java:1018)
at java.lang.Runtime.exec (Runtime.java:610)
at java.lang.Runtime.exec (Runtime.java:448)
at java.lang.Runtime.exec (Runtime.java:345)
at test.main (test.java:6)
Вызвано: java.io.IOException: ошибка CreateProcess = 2, система не может найти
указанный файл
at java.lang.ProcessImpl.create (собственный метод)
at java.lang.ProcessImpl. (ProcessImpl.java:155)
at java.lang.ProcessImpl.start (ProcessImpl.java:99)
at java.lang.ProcessBuilder.start (ProcessBuilder.java:1010)
... еще 4

Может кто-нибудь сказать мне, в чем проблема ??

-Спасибо заранее

Ответы [ 2 ]

2 голосов
/ 17 октября 2010

Вот действительно хороший учебник по среде выполнения и процессам в Java, который охватывает все вопросы, которые вы хотите сделать.

http://www.java -tips.org / java-se-tips / java.util / from-runtime.exec-to-processbuilder.html

Просто вы хотите использовать Runtime для открытия окна команд, а Process - для чтения и записи в выходной потокэтого процесса.

1 голос
/ 07 марта 2011

Ошибка в вашей команде .. "cmd.exe / start cmd"

Process prr = rt.exec ("cmd / c" + i);в этом случае команда, которую вы хотите выполнить, находится в (String i)

...