IDEA下springboot项目打包Error: Invalid or corrupt jarfile .\xxxxx.jar与找不到主类

本文介绍了在IDEA中打包SpringBoot项目时遇到的'Invalid or corrupt jarfile'和'找不到主类'的错误。通过详细步骤分享了解决这些问题的过程,包括设置Artifacts,确保META-INF文件正确,并注意执行的jar文件路径。如果问题依然存在,作者建议使用已知能正常运行的项目版本作为基础,将自己的修改添加进去,以此来解决打包问题。

springboot项目打包为jar

因为要将项目部署至Linux服务器下,所以需要将开发好的项目进行打包,但上传后一直执行出错,在本地是可以执行成功的,所以在此分享一下其中的问题。

网上分享的有两种方法,但是我用maven的package打包执行的出错更严重,在此只分享下步骤,希望解决其中问题的大佬指导一下。

具体过程

  • 打开project Structure,点击Artifacts

  • 点击+号选择 JAR

  • 选择主类与META-INF的位置,这点很关键,我的问题就在于META-INF文件

  • 然后点击apply ok
  • 接下来在项目选项栏中选择Build,选择Build Artifacts

  • 若已存在选择rebuild, 不存在选择build
  • OK,你以为结束了吗?

关键问题

找到生成的_jar文件,打开之后执行projectname.jar文件发现还是有错误,

是因为jar包里的META-INF文件有问题,将之前我们设置的路径下的META-INF文件放入jar包中,此时就能够成功执行了

NOTICE:

若仍然没有解决问题的话,这里我采用的方法是找一个能够成功生成并执行_jar文件的版本,然后将自己修改的内容重新添加到该版本中,这样就能够成功解决了,亲测有效。具体是什么问题目前我也不清楚,但该方法是能够解决该问题的。

 

 

另一个比较傻的问题描述为      不存在或找不到主类,    但主类我们明明在前面已经设置了,实际上是因为我们应该执行的是projectname_jar文件夹内的projectname.jar文件,但我却将projectname_jar文件夹打包为.jar包,最终执行就找不到主类了,尴尬。。。

当你遇到错误: ``` Error: Invalid or corrupt jarfile test.jar ``` 这意味着 Java 无法识别或打开你指定的 `.jar` 文件,可能的原因包括: --- ### 🔍 常见原因解决方法 #### ✅ 1. 文件路径错误 - **问题**:你指定的 `.jar` 文件路径不正确或不存在。 - **解决**:确认路径是否正确,可以使用绝对路径或相对路径。 ```bash java -jar /path/to/test.jar ``` --- #### ✅ 2. 文件损坏或未完整下载 - **问题**:JAR 文件在下载或复制过程中损坏。 - **解决**:重新下载或复制该 JAR 文件。 --- #### ✅ 3. 文件不是真正的 JAR 包 - **问题**:文件名是 `.jar`,但其实是一个文本文件、损坏的压缩包或其它格式。 - **解决**: - 使用命令查看文件型(Linux/macOS): ```bash file test.jar ``` - 或使用解压工具尝试打开,确认是否为 ZIP 格式。 --- #### ✅ 4. 没有可执行的 `Main-Class` 清单 - **问题**:JAR 文件没有定义(Main-Class)。 - **解决**: - 查看 `MANIFEST.MF` 文件内容: ```bash unzip -p test.jar META-INF/MANIFEST.MF ``` - 如果没有 `Main-Class`,你需要手动指定运行: ```bash java -cp test.jar com.example.Main ``` --- #### ✅ 5. 文件权限问题(Linux/macOS) - **问题**:JAR 文件权限不足,无法读取。 - **解决**:更改文件权限: ```bash chmod 644 test.jar ``` --- ### ✅ 示例:正确运行 JAR 文件 ```bash # 查看 JAR 文件内容是否正常 unzip -l test.jar # 查看 unzip -p test.jar META-INF/MANIFEST.MF # 运行程序(如果已定义) java -jar test.jar # 或者手动指定 java -cp test.jar com.example.Main ``` --- ### ✅ 总结 | 原因 | 解决方法 | |------|----------| | 路径错误 | 确认路径是否正确 | | 文件损坏 | 重新下载 JAR 文件 | | 不是 JAR 文件 | 用解压工具检查 | | 无 | 查看 MANIFEST 或手动指定 | | 权限不足 | 使用 `chmod` 修改权限 | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值