java项目打可运行jar包的三种方式

例如有两个jar包
my-jar.jar(main入口包)
lib-jar.jar(依赖包)

方法一:不借助MANIFEST文件
java -classpath jar1:jar2:jar3…… mainClassName
中间的jar是jar包路径。mainClassName是main方法所在的类名

方法二:借助MANIFEST文件
想办法在my-jar.jar中添加MANIFEST.MF文件,内容参考下面这样:
Main-Class: yjmyzz.runnable.jar.DemoApp
Class-Path: my-lib.jar
至于如何在打包里,自动添加MANIFEST.MF文件,则添加如下代码
<plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
            <appendAssemblyId>false</appendAssemblyId>
            <descriptorRefs>
                <descriptorRef>jar-with-dependencies</descriptorRef>
            </descriptorRefs>
            <archive>
                <manifest>
                    <!-- 此处指定main方法入口的class -->
                    <mainClass>main.java.Pachong</mainClass>
                </manifest>
            </archive>
        </configuration>
        <executions>
            <execution>
                <id>make-assembly</id>
                <phase>package</phase>
                <goals>
                    <goal>assembly</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
    
方法三:借助spring-boot插件
执行maven install,就会在target文件夹下,生成两个文件my-jar.jar以及my-jar.jar.original
这个original文件,其实就是一个普通的jar包,其中的MANIFEST.MF并没有什么实质性内容,只是一个空壳
直接运行java -jar my-jar.jar就可以运行

来源:https://www.cnblogs.com/yjmyzz/p/executable-jar.html

发布了26 篇原创文章 · 获赞 0 · 访问量 771

猜你喜欢

转载自blog.csdn.net/sumengnan/article/details/104339644