我有一個需要編譯C程序的項目。該項目使用Java。我必須將程序帶入JTextArea(我正在使用Swing for GUI),將其運行到測試文件並將結果輸出到另一個JTextArea。但是在我的代碼中似乎有些問題。從java程序調用C編譯器
Process p = new ProcessBuilder("c:\\MinGW\\bin\\cc.exe", "program.c").start();
program.c包含用戶進入TextArea和程序 「C:\ MinGW的\ BIN \ cc.exe」 是我的C編譯器。我檢查了這沒有引發任何異常。它應該在我的當前目錄下創建一個名爲a.exe的文件,其中包含program.c文件,但它不是。正確的方法是什麼?
我看到兩個類似的帖子,但他們也沒有提供一個簡單的乾淨的解決方案。 另外,我必須在它之後運行創建的可執行文件。
在此先感謝。
如果進程內出現錯誤(即編譯器失敗),ProcessBuilder將不會引發異常,您應該讀取進程的輸出以確保沒有任何錯誤發生...... – MadProgrammer
Read(並執行)*所有* [當Runtime.exec()不會](http://www.javaworld.com/jw-12-2000/jw-1229-traps.html)的建議。這可能會解決問題。如果不是,它應該提供更多關於失敗原因的信息。然後忽略它引用'exec'並(繼續)使用'ProcessBuilder'構建'Process'。 *「我看到另外兩個帖子與此類似。」*鏈接? –
@AndrewThompson這些鏈接我忘了。當我授予這個職位的頭銜時,他們會提出建議。我今晚將爲此工作。 – kuroop