我正在嘗試從另一個 java 程序運行 java 類文件。這是我的程序:import java.io.File;import java.io.IOException;import java.lang.ProcessBuilder.Redirect;public class RunJava { public static void main(String[] args) throws IOException { ProcessBuilder pb = new ProcessBuilder("java","HelloWorld"); pb.directory(new File("/home/local/prasanth-8508")); pb.redirectOutput(Redirect.INHERIT); pb.redirectError(Redirect.INHERIT); pb.start(); }}運行此程序后,出現(xiàn)以下錯誤:線程“main”中的異常 java.io.IOException:無法運行程序“java”但是當(dāng)我從我的終端運行任何 java 命令時,它們工作得非常好。我發(fā)現(xiàn)的另一件事是,當(dāng)我運行命令時:echo $PATH在我的終端中并使用 ProcessBuilder ( ProcessBuilder pb = new ProcessBuilder("bash","-c","echo $PATH");),它們顯示不同的輸出。即jdk/bin的路徑?jīng)]有顯示在 ProcessBuilder 命令中。我該如何解決這個問題?
1 回答

汪汪一只貓
TA貢獻(xiàn)1898條經(jīng)驗 獲得超8個贊
是的,正如@MichaelBerry 所說,您可能沒有訪問它的權(quán)限,但除此之外我還想包括在內(nèi),
在這里,您已經(jīng)從非常好的ProcessBuilder開始,您只需要修改-jar
processBuilder 的構(gòu)造函數(shù)中的參數(shù)之類的小東西。
我在下面發(fā)布了示例代碼,可以幫助您了解它是如何工作的。
ProcessBuilder pb = new ProcessBuilder("/path/to/java", "-jar", "your.jar");
pb.directory(new File("preferred/working/directory"));
Process p = pb.start();
添加回答
舉報
0/150
提交
取消