Intellij Idea打包JAR运行提示Invalid or corrupt jarfile错误是什么原因
问题原因及解决方案
- 主类main方法签名不合法
Java规范要求可执行类的入口方法必须为public static void main(String[] args),你当前代码中的main方法缺少String[] args参数,JVM无法识别到合法入口,打包时主类校验失败会直接导致生成的jar包结构异常。
修正后的代码示例:public class untitled3 { public static void main(String[] args){ System.out.println("ciao mondo"); } } - MANIFEST.MF配置错误
使用java -jar命令执行jar包时,必须在jar包内的META-INF/MANIFEST.MF文件中指定Main-Class属性。你在IDEA创建Artifact的过程中如果没有正确选择主类,或者生成的MANIFEST.MF被其他配置覆盖,就会导致jar包被识别为无效文件。
可以手动检查Artifact配置:打开Project Structure -> Artifacts,找到你创建的jar配置,确认Main Class项已经选中untitled3,且MANIFEST.MF的生成路径设置在项目的resources/META-INF目录下。 - 构建缓存导致产物损坏
旧的构建缓存可能会导致生成的jar包不完整,先执行Build -> Clean Project清除缓存,再重新执行Build Artifacts即可。 - JDK版本不匹配
打包使用的JDK版本高于执行命令使用的JRE/JDK版本也会触发该报错,分别执行javac -version和java -version命令,确认两者版本一致即可。
内容的提问来源于stack exchange,提问作者xRobot
相关产品推荐
相关产品推荐

