一、問題描述
Ubuntu環境下將Maven項目打包成jar包后,運行一下指令:
1 $ java -jar my.jar
發生錯誤:
1 Error: Invalid or corrupt jarfile my.jar
二、問題分析
首先要保證jar包沒有在傳輸過程中損壞。
若jar包沒有損壞,則極大可能是入口信息配置錯誤或者入口信息已丟失。
三、解決方案
情況1:java目錄下META-INF文件夾中MANIFEST.MF文件中的信息配置錯誤。
打開MANIFEST.MF文件,觀察Main-Class:后面對應的main函數入口是否正確,例如:
1 Manifest-Version: 1.0 2 Main-Class: com.myproject.Main
情況2:MANIFEST.MF文件中的信息配置正確,但還是無法正確找到程序入口。
此時可能是打包過程中丟失了入口信息、入口太多沒有指定主入口或者因為其他原因無法順利找到入口,可以采用-cp指令來強行指定程序入口,指令如下:
1 $ java -cp my.jar com.myproject.Main
找到入口后,程序即可順利運行。