簡體   English   中英

在Java中執行批處理文件會產生意外結果

[英]Executing Batch file in java gives unexpected results

我有以下批處理文件:-

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編譯器,它在計算機的路徑中定義

指定完整路徑應該可以解決問題。 但是不要忘了用雙引號將其引起來。 "批處理時,建議所有路徑都用雙引號引起來,因為在Windows中,路徑很可能包含空格。如果沒有雙引號,則空格將作為分隔符處理,在不同的部分剎車(就像它們是不同的參數/可執行文件一樣)。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM