Ubuntu环境下Error: Invalid or corrupt jarfile xxx.jar

时间:2023-03-08 16:58:59

一、问题描述

Ubuntu环境下将Maven项目打包成jar包后,运行一下指令:

 $ java -jar my.jar

发生错误:

 Error: Invalid or corrupt jarfile my.jar

二、问题分析

首先要保证jar包没有在传输过程中损坏。

若jar包没有损坏,则极大可能是入口信息配置错误或者入口信息已丢失。

三、解决方案

情况1:java目录下META-INF文件夹中MANIFEST.MF文件中的信息配置错误。

打开MANIFEST.MF文件,观察Main-Class:后面对应的main函数入口是否正确,例如:

 Manifest-Version: 1.0
Main-Class: com.myproject.Main

情况2:MANIFEST.MF文件中的信息配置正确,但还是无法正确找到程序入口。

此时可能是打包过程中丢失了入口信息、入口太多没有指定主入口或者因为其他原因无法顺利找到入口,可以采用-cp指令来强行指定程序入口,指令如下:

 $ java -cp my.jar com.myproject.Main

找到入口后,程序即可顺利运行。