[英]How do I create a runnable JAR in IntelliJ as I would in Eclipse
我從使用Eclipse的許多庫的項目創建可運行JAR的過程已經完成。
導出> Runnable JAR>選擇啟動配置>將所需的庫打包到生成的JAR>完成
這會在我的導出目標中創建一個JAR,我將其FTP到我的服務器並運行正常。
我最近因各種原因切換到IntelliJ,除了構建我的JAR之外,它在所有情況下都有所改進,這迫使我暫時回到日食。
使用IntelliJ I:
打開項目結構>工件,並從具有依賴項的模塊創建新的JAR。 然后,我的輸出布局包含JAR的名稱,其中的META-INF以及所有我的庫,其格式為Extracted <lib.jar/>
(抱歉,我無法上傳此VPN上的屏幕截圖。)
我構建我的工件(大約大15MB)並將其FTP到我的服務器,嘗試運行它,我得到錯誤:
Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
我如何模仿我在Eclipse中的表現?
編輯
創建的兩個JAR差異很大:
你面臨兩個問題,一個似乎很重要,一個是次要問題:
這兩個問題的解決方案在於構建工件的方式。 首先,刪除所有extracted *.jar
然后從可用元素pan中添加所有jar,如圖所示。
很明顯,僅添加包裝(壓縮)的罐子會減小尺寸。 但它也解決了簽署問題。 有關更多說明,請查看此文章 。 我只會引用一行。
最好保留官方jar,只需將其作為依賴項添加到清單文件中......
似乎某些依賴項已簽名並且重新打包會混淆您項目的META-INF。
如果您使用的是Maven,則需要將
META-INF
目錄放在/main/resources
文件夾下,而不是main/java
。
參考: Intellij - Nikolay Chashnikov
然后你可以使用java -jar filename.jar
正常執行runnable jar
你可以這些步驟:
1)文件 - >項目結構 - >項目設置 - >工件 - >罐子 - >來自具有依賴關系的模塊
2)選中項目構建中的包括復選框。
3)右鍵單擊模塊 - >構建模塊'ModuleName'
你可以嘗試使用gradle腳本。 eclipse會讓你成為一個gradle項目。 你可以使用任何ide的構建文件。 它有一個內置的jar任務。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.