繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM