gpt4 book ai didi

java - 无法使用 -cp 和 jar 位置使用 Java ProcessBuilder 找到或加载类

转载 作者:行者123 更新时间:2023-11-30 10:41:24 25 4
gpt4 key购买 nike

我正在尝试使用 ProcessBuilder 在我的 Java 应用程序中启动 JUnit 测试。

我可以毫无问题地从命令行运行相同的命令。从 ProcessBuilder 运行时我需要使用 jar 的绝对路径还是可以使用相对路径?

在命令行运行

java -cp .;lib/junit-4.12.jar org.junit.runner.JUnitCore com.test.Test1

在我的应用程序中运行

junit库在lib文件夹下

应用程序/lib/junit-4.12.jar

        ProcessBuilder builder = new ProcessBuilder(new String[] {"java", "-cp", ".;lib/junit-4.12.jar", "com.test.Test1"});

Process process = builder.start();
process.waitFor();

debug("process ended");
debug("process.exitValue() = " + process.exitValue());

输出:

process ended
process.exitValue() = 1
Error: Could not find or load main class org.junit.runner.JUnitCore

最佳答案

您可以在运行应用程序时找到类路径,方法是使用System.getProperty("java.class.path");然后,相应地修改 ProcessBuilder() 语句中的“cp”。

关于java - 无法使用 -cp 和 jar 位置使用 Java ProcessBuilder 找到或加载类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38515321/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com