2016-12-16 24 views
0

我有以下批處理文件: -執行批處理文件提供了意想不到的結果

gcc temp.c -o temp.exe 
pause 

此批處理文件編譯一個.C文件。這個批處理腳本在雙擊執行時運行良好,但是當我爲此使用java時,它給了我一個錯誤。以下是代碼

Process p = Runtime.getRuntime().exec("cmd /c start CPrun.bat"); 
p.waitFor(); 

CRun.bat是批處理文件的名稱。

以下是對CMD的錯誤

'gcc' is not recognized as an internal or external command, 
operable program or batch file. 

注意,GCC是我的C編譯器這是在我的電腦

+0

是gcc的路徑? – pringi

+0

@pringi是啊,這就是爲什麼直接執行它可以正常工作 –

+0

嘗試給CPrun.bat上的gcc的完整路徑。我不確定Windows在cmds之間的環境共享方式如何運行 – pringi

回答

1

指定的完整路徑應該做的伎倆的路徑定義。但不要忘記用雙引號括起來"。批量建議使用雙引號括住所有路徑,因爲在Windows路徑中很可能包含空格。沒有雙引號,空格將作爲分隔符處理,在不同的部分制動你的路徑(就像它們是不同的參數/可執行文件一樣)。

關於環境變量:您只能訪問系統傳遞給JVM的環境變量。要查看這些變量,您可以使用System.getenv()它將字符串返回到字符串映射,並將環境變量名稱映射到它們的值上。我製作了a little demo,其中打印了所有可用的環境變量。

相關問題