当我们编写完Java程序后,为了提高执行效率通常会将应用程序打包成JAR(Java Archive)包。JAR包中的类文件经过预编译和优化,可以直接被Java虚拟机(JVM)执行,而无需再次编译。这样可以避免重复的编译过程,减少了启动时间和运行时的开销。
为了保证生成的JAR包可以直接在虚拟机中运行,需要采用带依赖的打包方式。本文提供了两种常用的打包方式:
- IDEA自带的打包工具: Artifacts;
- 使用pom引入:maven-shade-plugin进行打包。
使用快捷键(Ctrl+Alt+Shift+S)可以快速打开项目的Project Structure。

按照Artifacts==> “+” ==> “JAR” ==> "From modules with dependencies"的顺序

点击Main Class 。在Select Main Class==>Search by Name中选择选择程序的入口函数。


再点击上图的Ok,创建得到的artifacts。

通过 “+” 或者 “-” 选择需要打入artifacts的第三方jar文件,如图:

Extracted后的JAR包是指从Jar包中提取出来的已经解压的文件,通常包括类文件、资源文件等等。如果没有这些文件,直接运行JarAR包会导致无法加载运行所需的类文件,从而提示类找不到的错误。
选择完第三方Jar文件后,点击Apply和OK,保存配置信息。
在菜单栏目找到Build,选择Build Artifacts。

最后窗口,点击Build们就可以生成JAR包了。

打包后的位置在左侧的out中。

在jar包位置,右键选择Open in ==> Explorer ;

来到jar包的位置,在上方的地址栏直接输入“cmd”

执行命令:
例如:
执行结果。

我个人更喜欢使用maven-shade-plugin进行打包。它能够将Java项目打包成可执行的JAR文件,并自动包含所有依赖项,从而无需单独安装和配置所有的依赖项。
在pom文件中加入以下内容:
按照clean==>complie==>package的顺序进行打包。

在左侧会生成target文件,里面就有可以执行的jar文件

1. “-SNAPSHOT” 后缀的 Jar 包: 原始的 Jar 包。“-SNAPSHOT” 后缀是 Maven 的一种命名规范,用于表示当前版本是一种开发中的、不稳定的版本。
2. “origin” 前缀的Jar包: 是没有经过重命名的依赖 Jar 包。这些 Jar 包通常包含项目依赖的库和框架。
3. “-SNAPSHOT-shaded” 后缀的 Jar 包: 是经过重命名的可运行 Jar 包。这个重命名避免了与其他依赖项名称冲突。在其中的MANIFEST.MF 文件中也包含了正确的主类信息。
例如:
执行结果。

介绍了两种打包方法:
- IDEA打包工具:Artifacts
- maven-shade-plugin插件
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/5709.html