2012-06-28 2 views
0

Вызов gcc-компилятора в Java-источнике для компиляции C-файла.Отсутствует выходной файл, созданный при компиляции с помощью gcc

List<String> command = new ArrayList<String>(); 
    String fs = System.getProperty("file.separator"); 
    command.add("C:\\cygwin" + fs + "bin" + fs + "sh"); 
    command.add("-c"); 
    command.add("/usr/bin/gcc /cygdrive/d/WorkSpace/TEST/HelloWorld.c -o /cygdrive/d/WorkSpace/HHH"); 
    ProcessBuilder builder = new ProcessBuilder(command); 
    final Process process = builder.start(); 

HHH.exe не создан. Может кто-нибудь объяснить мне, что не так с этим кодом?

+0

Перенаправить вывод в поток и попробовать его распечатать. OutputStream stream = process.getOutputStream(); используйте поток, чтобы прочитать, что на самом деле происходит. – madhairsilence

+0

Я сделал. Я использовал process.getInputStream() для записи вывода на консоль. Но ничего не появляется. – Taani

+0

Выполните команду сначала и посмотрите. убедитесь, что даже прямое выполнение ничего не показывает в оболочке. – madhairsilence

ответ

1

Вам нужно сделать строки «cmd» и «/ c» первыми двумя элементами в списке команд. Это необходимо при вызове любого процесса командной строки из Java.