使用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