一、问题描述
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
找到入口后,程序即可顺利运行。