必须先确保项目可运行且无编译错误,再通过File→Project Structure→Artifacts添加JAR from modules with dependencies,正确设置Main Class、勾选extract to the target JAR,最后Build→Build Artifacts生成可执行JAR。

在IntelliJ IDEA中将Java项目打包为可执行JAR包,是交付独立运行程序的必备操作。你必须确保主类路径正确、依赖完整嵌入、MANIFEST.MF文件自动生成,否则java -jar命令会报错“no main manifest attribute”或“ClassNotFoundException”。
确认项目可运行且无编译错误
点击菜单栏Build → Rebuild Project,等待底部状态栏显示“BUILD SUCCESSFUL”。这一步不可跳过——如果代码存在语法错误或未解析的符号,后续打包生成的JAR可能能构建成功但无法启动。
右键点击含main()方法的类→选择Run 'Xxx.main()',验证程序能正常输出。若控制台抛出NoClassDefFoundError,说明依赖未被正确引入,需先解决模块依赖问题再继续打包。
配置Artifacts:从模块打包含依赖的JAR
按快捷键Ctrl+Alt+Shift+S(Windows/Linux)或Cmd+; (macOS)打开项目结构。
立即学习“Java免费学习笔记(深入)”;
左侧选中Artifacts→点击右上角+号→选择JAR → From modules with dependencies。
在弹出窗口中:
① 在Main Class下拉框里必须手动选择含public static void main(String[])的类,IDE不会自动识别;
② 勾选extract to the target JAR,否则第三方库(如slf4j、junit等)不会被打进JAR,运行时必报错;
③ Directory for META-INF/MANIFEST.MF保持默认即可,新版IDEA(2025.1+)已修复旧版因路径错误导致MANIFEST缺失的BUG。
点击OK保存配置。
你接手一个需求时,是不是经常这样:"改一个小字段 → 结果把不相关的代码也改了"、"需求说得很模糊 → 做着做着发现跑偏了"、"数据库加个字段 → 上线才发现漏了数据兼容"、"做了个新功能 → 一个月后自己都忘了当时怎么设计的"、"写到一半被中断 → 再回来不知道从哪继续";这个 Skill 就是专门解决这些问题的。 它会自动探测你的项目环境(JDK、Spring Boot、ORM、数据库、前端框架),记在
构建并定位生成的JAR文件
菜单栏选择Build → Build Artifacts…→在弹出窗口中选中你的artifact名称→点击Build。
构建完成后,JAR文件默认生成在项目根目录下的out/artifacts/xxx_jar/xxx.jar路径中。注意不是out/production/,也不是target/——那是Maven项目的输出位置。
双击该JAR文件或在终端执行java -jar xxx.jar,观察是否立即打印预期输出。若提示“Failed to load Main-Class manifest attribute”,说明步骤二中Main Class未选对或MANIFEST未写入,需返回Artifacts设置重新检查。
使用Maven方式打包(适用于Maven项目)
方法一:直接触发package生命周期
右侧打开Maven Projects工具窗口→展开项目名→展开Lifecycle→双击package。Maven会自动编译、运行测试(如有)、打包,最终JAR出现在target/xxx-1.0-SNAPSHOT.jar。
方法二:配置maven-jar-plugin指定主类(推荐)
在pom.xml的<build><plugins>内添加:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<archive>
<manifest>
<mainClass>com.example.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
注意:com.example.Main必须与实际类的全限定名完全一致,大小写敏感,且该类必须存在于src/main/java下。

















