[英]Build java project using jars into one jar (command line)
在 Intellij 中,即使我的项目使用其他 jar 文件(如驱动程序),我也可以“构建工件”以创建 jar 文件。 传统上,我会通过将它们放在我的类路径中来编译具有 jar 依赖项的项目,如下所示:
javac -cp .:dependency.jar Main.java
然后可以通过执行以下操作来运行Main
:
java -cp .:dependency.jar Main
我的问题是,如何使用这个新的Main
创建一个 jar 文件? 我可以:
jar cvf Main.jar Main.java
这将创建一个 jar 文件,但它不会运行并说:
no main manifest attribute, in Main.jar
我想知道如何将我的其他 jar 依赖项打包到可执行 jar 中。
选项 1 :如果您使用 Maven,则使用 Maven 插件:
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>Path.to.your.main.class</mainClass>
<addClasspath>true</addClasspath>
</manifest>
</archive>
</configuration>
</plugin>
选项 2 :使用 spring boot 来创建 fat jar。 其中包括所有依赖的 jar 文件。 确保包含 spring boot 依赖项。
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.3.3.RELEASE</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
选项 3:没有任何 Maven 和 Spring 的帮助:
创建一个 manifest.txt 文件,内容如下:
Main-Class: path.to.your.main.class
创建 jar 使用命令: jar -cvfm Application.jar manifest.txt /path/to/*.class
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.