我正在尝试从另一个 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(); }}运行此程序后,出现以下错误:线程“main”中的异常 java.io.IOException:无法运行程序“java”但是当我从我的终端运行任何 java 命令时,它们工作得非常好。我发现的另一件事是,当我运行命令时:echo $PATH在我的终端中并使用 ProcessBuilder ( ProcessBuilder pb = new ProcessBuilder("bash","-c","echo $PATH");),它们显示不同的输出。即jdk/bin的路径没有显示在 ProcessBuilder 命令中。我该如何解决这个问题?
1 回答
汪汪一只猫
TA贡献1898条经验 获得超8个赞
是的,正如@MichaelBerry 所说,您可能没有访问它的权限,但除此之外我还想包括在内,
在这里,您已经从非常好的ProcessBuilder开始,您只需要修改-jar
processBuilder 的构造函数中的参数之类的小东西。
我在下面发布了示例代码,可以帮助您了解它是如何工作的。
ProcessBuilder pb = new ProcessBuilder("/path/to/java", "-jar", "your.jar");
pb.directory(new File("preferred/working/directory"));
Process p = pb.start();
添加回答
举报
0/150
提交
取消