Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在另一个java程序中运行jar文件_Java_Jar - Fatal编程技术网

在另一个java程序中运行jar文件

在另一个java程序中运行jar文件,java,jar,Java,Jar,如何在另一个java程序中运行jar文件?我发现: exec(“java-jar”+文件路径) 但我不断得到一个错误,它说这是一个非静态方法,它是从静态上下文运行的,而它甚至不在静态方法中。我搜索了很多,但找不到答案。Runtime.exec是一种非静态方法。这意味着您需要一个运行时的实例来调用它 幸运的是,Runtime有一个名为Runtime.getRuntime()的方法返回实例 因此,您需要使用Runtime.getRuntime().exec(…)。就像本主题的每一个教程都会向您展示的

如何在另一个java程序中运行jar文件?我发现:

exec(“java-jar”+文件路径)


但我不断得到一个错误,它说这是一个非静态方法,它是从静态上下文运行的,而它甚至不在静态方法中。我搜索了很多,但找不到答案。

Runtime.exec
是一种非静态方法。这意味着您需要一个
运行时的实例来调用它

幸运的是,
Runtime
有一个名为
Runtime.getRuntime()
的方法返回实例


因此,您需要使用
Runtime.getRuntime().exec(…)
。就像本主题的每一个教程都会向您展示的一样。

您应该按照@Joachim Sauer answer或
ProcessBuilder
(由
Runtime.exec
使用)启动
Runtime
<代码>ProcessBuilder
可以更好地控制错误+标准输出流:

String java = Path.of(System.getProperty("java.home"),"bin", "java").toString();
String [] cmd = new String[] {java, "-jar", filepath};

ProcessBuilder pb = new ProcessBuilder(cmd);
// see other calls here such as pb.directory() or pb.environment()
pb.redirectOutput(new File("stdout.log"));
pb.redirectError(new File("stderr.log"));
Process p = pb.start();
int rc = p.waitFor();

你能举个例子说明你在搜索过程中发现的没有帮助的东西吗?我发现很难相信没有一个关于这个主题的教程或帮助网站能给你正确的回答。但是我有一个问题,当指定路径时,它是从主项目文件开始的路径吗?而且我只是试了一下,但它给我的效果不好