使用IDEA经过MAVEN建立quickstart项目后,添加了Artifacts,发现生成的jar包没法run,出现下面的错误:java
Error: Invalid or corrupt jarfile D:\WorkSpace\JavaStudy\*\out\artifacts\*_jar\*.jarintellij-idea
因而本身先尝试了不少方法,经过对比发现jar包里面根本没有META_INF文件夹,这就是jar没法运行的根本缘由;ide
因而继续bing搜索,找到了以下解决办法:ui
Make sure your MANIFEST.MF is in: src/main/resources/META_INF/ NOT src/main/java/META_INF/
idea
问题分析:
IDEA中,在File\Project Structure\Artifacts\添加artifacts的时候,默认会在src/main/java/META_INF/
下建立目录,可是此目录(
src/main/java/
)已标记为Sources Root,仅编译;
因此应该将src/main/java/META_INF
剪切到src/main/resources/META_INF/,
src/main/resources/
是Resources Root,会拷贝到out目录
感谢老外的这个帖子stackoverflow.com