下面Java中不能正常工作(拋出一個異常):Java的java.lang.Runtime.exec()和PHP的exec()之間有什麼區別?
exec("cd mydir; myprog");
究竟什麼是不同的Java的實現,爲什麼(看來:
Runtime.getRuntime().exec("cd mydir; myprog");
同樣的作品在PHP罰款乍一看更有限)?
下面Java中不能正常工作(拋出一個異常):Java的java.lang.Runtime.exec()和PHP的exec()之間有什麼區別?
exec("cd mydir; myprog");
究竟什麼是不同的Java的實現,爲什麼(看來:
Runtime.getRuntime().exec("cd mydir; myprog");
同樣的作品在PHP罰款乍一看更有限)?
java的exec命令不不使用系統命令解釋器。類似於「cd mydir; myprog」的內容取決於系統命令行解釋器(例如,在windows cmd
上,在linux sh
上)將其拆分爲2個單獨的命令並執行它們中的每一個。 java不會調用系統命令解釋器,因此不起作用。您需要分別調用每個命令,或者自己調用所需的解釋器作爲命令行的一部分。
假設您正在運行applet,而不是服務器上CLI環境中的Java?如果是這樣,那麼您的Java運行時正在客戶端計算機上運行,而不是服務器上運行。
Java還有更好的方式來處理多個命令而不是你的分號。除了使用簽名:
Runtime.exec(String)
嘗試使用此爲您的每個命令:
Runtime.exec(String[])
,使你的命令的每個參數的字符串數組中的元素。
我見過有人有這樣的問題,我敢肯定有幾種方法,但是我見過的大多數人回覆是這樣的。在它之前添加cmd。
Runtime.getRuntime().exec("cmd cd mydir; myprog");
你是否從同一個工作目錄運行這兩個程序?例外說什麼? – BoltClock