我正在尝试从命令行创建一个可执行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 …