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