相关疑难解决方法(0)

从命令行将JAR依赖项与可执行JAR(ÜberJAR)捆绑在一起

我正在尝试从命令行创建一个可执行jar.JAR中的主类具有我已打包到另一个普通JAR文件中的依赖项.

我想将依赖项JAR与可执行JAR打包在一起,以便发送一个JAR文件.

我到目前为止尝试的是以下内容:

依赖项Hello.class文件具有模拟代码:

public class Hello {
    public String getHello() {
        return "Well hello there!!";
    }
}
Run Code Online (Sandbox Code Playgroud)

我使用以下方法将类文件打包到hello.jar中:

jar cvfM hello.jar Hello.class
Run Code Online (Sandbox Code Playgroud)

hello.jar内容现在是:

hello.jar -+- Hello.class
Run Code Online (Sandbox Code Playgroud)

现在我有主要类与模拟代码:

public class Main {
    public static void main(String[] args) {
        System.out.println(new Hello().getHello());
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,我创建一个清单文件manifest.txt,其中包含以下内容:

Main-Class: Main
Class-Path: hello.jar
Run Code Online (Sandbox Code Playgroud)

我现在使用以下方法创建可执行JAR:

jar cvfm main.jar manifest.txt Main.class hello.jar
Run Code Online (Sandbox Code Playgroud)

main.jar文件内容是现在:

main.jar -+- Main.class
          |
          +- hello.jar
          |
          +- META-INF -+- MANIFEST.MF
Run Code Online (Sandbox Code Playgroud)

使用以下命令运行可执行JAR:

java -jar main.jar
Run Code Online (Sandbox Code Playgroud)

我得到Hello类依赖项的类加载器错误.我知道这是因为类加载器在与main.jar …

java jar classpath executable-jar

5
推荐指数
2
解决办法
4566
查看次数

标签 统计

classpath ×1

executable-jar ×1

jar ×1

java ×1