Я хочу создать приложение, которое может компилировать и запускать внешние программы. Для этого мне нужно запустить команды компилятора из командной строки (такие команды, как javac и gcc). Я попробовал этот подход дал здесь - Run cmd commands through javaКак вызвать команды cmd из программы Java в Windows?
Это мой код
import java.io.*;
public class Main
{
public static void main(String[] args) throws Exception
{
ProcessBuilder builder=new ProcessBuilder(
"cmd.exe","javac F://Test.java","java -cp F:// Test");
builder.redirectErrorStream(true);
builder.start();
Process p = builder.start();
BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
try
{
while (true)
{
line = r.readLine();
if (line != null)
System.out.println(line);
}
}
catch(Exception e){}
}
}
Но когда я запускаю его, он просто выполняет 1-й команды (cmd.exe), отображает этот выход:
Microsoft Windows [версия 6.3.9600] (c) Корпорация Microsoft в 2013 году. Все права защищены.
И затем он ждет бесконечно. Что я здесь делаю неправильно?
EDIT- Мой вопрос был идентифицирован как дубликат этого вопроса - Start CMD by using ProcessBuilder. Но я считаю, что этот вопрос задает вопрос о том, как запустить cmd из java-кода. Мне нужна моя программа для выполнения команд cmd. Например. Я хочу выполнить команду javac после запуска процесса для cmd.
'cmd/c ...' для выполнения других приложений ... –
Возможный дубликат [Начать CMD с помощью ProcessBuilder] (http://stackoverflow.com/questions/10954194/start-cmd-by-using- ProcessBuilder) – JFPicard