使用IDEA通过MAVEN创建quickstart项目后,添加了Artifacts,发现生成的jar包无法run,出现下面的错误:

Error: Invalid or corrupt jarfile D:\WorkSpace\JavaStudy\*\out\artifacts\*_jar\*.jar

于是自己先尝试了很多方法,通过对比发现jar包里面根本没有META_INF文件夹,这就是jar无法运行的根本原因;

于是继续bing搜索,找到了如下解决办法:



Make sure your MANIFEST.MF is in:
src/main/resources/META_INF/

NOT
src/main/java/META_INF/



问题分析:
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​