【发布时间】:2017-11-29 17:44:17
【问题描述】:
我在“outer.jar”文件中有一个主类。在这个 jar 中,classes/lib 文件夹中还有另一个名为“inner.jar”的 jar。当我使用命令java -jar outer.jar运行外罐时,如何使内罐运行?
我的主类正在运行另一个名为“inner.jar”的 jar 并使用输出。现在我的应用程序也被打包为一个名为“outer.jar”的jar,当我运行这个“outer.jar”时,主类无法运行inner.jar
外jar主类代码:
public class OuterJarMain{
public static void main(String[] args) {
String path = OuterJarMain.class.getProtectionDomain().getCodeSource().getLocation().getPath();
ProcessBuilder pb = new ProcessBuilder("java", "-jar", path.substring(1)+"lib/inner.jar", "1");
try {
Process p = pb.start();
} catch (IOException e) {
e.printStackTrace();
}
当从 IDE 执行主类时,代码运行良好,因为 inner.jar 在 target/classes/lib 文件夹中可用。但是当我从命令行运行outer.jar时,路径显示为/C:/....../outer.jar!/.../classes!/,并且inner.jar没有被执行
【问题讨论】:
标签: java jar executable-jar