为了账号安全,请及时绑定邮箱和手机立即绑定

无法使用 processbuilder 运行 java 命令

无法使用 processbuilder 运行 java 命令

qq_花开花谢_0 2023-03-09 11:00:19
我正在尝试从另一个 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开始,您只需要修改-jarprocessBuilder 的构造函数中的参数之类的小东西。

我在下面发布了示例代码,可以帮助您了解它是如何工作的。

ProcessBuilder pb = new ProcessBuilder("/path/to/java", "-jar", "your.jar");

pb.directory(new File("preferred/working/directory"));

Process p = pb.start();


查看完整回答
反对 回复 2023-03-09
  • 1 回答
  • 0 关注
  • 216 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信