在Intellij,我能够构建一个工件"这允许我创建一个jar文件,即使我的项目使用其他jar文件(如驱动程序)。传统上,我会通过将它们放在我的类路径中来编译一个带有jar依赖项的项目:
service.update({}, data)
然后可以通过执行以下操作来运行javac -cp .:dependency.jar Main.java
:
Main
我的问题是,如何使用这个新的java -cp .:dependency.jar Main
创建一个jar文件?我能做到:
Main
将创建一个jar文件,但它不会运行并说:
jar cvf Main.jar Main.java
我想知道如何将我的其他jar依赖项打包到可执行jar上。
答案 0 :(得分:1)
选项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创建胖罐。其中包括所有依赖的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