首先介紹一下IntelliJ IDEA生成jar包的方式:
1、打開項目,打開FIile->Project Structure...菜單.如下圖:
選中Artifacts,點+號,選擇JAR,再選擇From modules with dependencies...,如下圖:
在打開的界面中選擇Main class:如下圖示,會自動搜索到main class位置,選中確定即可。
JAR files from libraries有兩個選項,extract to the target JAR和copy to the output directory and link via manifest,
extract to the target JAR:將第三方jar包打包到目標中,只生成一個jar包
copy to the output directoru and link via manfes:將第三方包copy的目標jar包目錄,有多個jar包
我們首先選擇第二項,如下圖:
關於Directory for META-INF/MANIFEST.MF默認,不需要修改(網上有很多說要改的),點OK完成配置。
如果不改jar包名, 可以直接點OK完成。
接下來就是生成jar包,打開菜單Build->Build Artifacts...->Build,如下圖:
生成結果如下:
運行Cknife-master.jar,成功:
我想大部分人不想這樣有多個jar包,會選擇生成一個包。我們接着做一下,重新打開FIile->Project Structure...菜單,將上一次的配置刪除,點 - 號如圖,重新添加:
這次選擇extract to the target JAR,如下圖:
如果出現以下錯誤,直接將src/META-INF/MANIFEST.MF文件刪除,關閉Project Structure(不關閉還是報錯,可能是bug)重新添加即可。
配置完成后,再次打開菜單Build->Build Artifacts...->Build,生成jar包如下圖:
到此,似乎一切正常,來運行一下。
無法正常運行,這個錯誤在網上搜索,有說是java或javac版本問題,有說是MANIFEST.MF位置不對,其實解決辦法很簡單,將第三方jar包META-INF中的認證文件刪除即可。如下圖:
重新build后運行一切正常。