簡體   English   中英

如何在Eclipse中創建可運行的JAR,就像在Eclipse中一樣

[英]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差異很大:

Eclipse創建的有效jar看起來像這樣: 好罐子

而無效的.JAR看起來像這樣: 壞罐子

你面臨兩個問題,一個似乎很重要,一個是次要問題:

  • 專業:簽名例外
  • 輕微:jar的大小比eclipse生成的jar大15 MB。

這兩個問題的解決方案在於構建工件的方式。 首先,刪除所有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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM