使用jar将java项目构建到一个jar中(命令行)

时间:2016-04-21 10:30:17

标签: java jar

在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上。

1 个答案:

答案 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