2013-09-21 97 views
0

我目前正在編寫一個依賴於LWJGL的程序。將庫添加到我的項目很容易,但我無法將項目導出爲獨立的JAR,用戶只需雙擊完成產品即可。導出LWJGL原生項目? (IntelliJ IDEA)

我曾嘗試:

  • 文件 - >項目結構... - >模塊 - >依賴關係選項卡 - >添加 - >罐或目錄 - >(插入路徑當地人在這裏) - >選項「類」在對話框中。 - >檢查下的「導出」框

期望的結果:在命令行上不存在依賴關係運行的JAR正常打開。我的項目中包含的其他JAR和目錄都很好,但如果可能的話,我希望IntelliJ將它們與我的項目自動導出,這樣我就不必手動將所需文件拖動到輸出目錄中,並將腳本使用正確的本機運行JAR。


我很新的IntelliJ,在Eclipse(雖然我從來沒有這樣做在Eclipse中,無論是)來了,我仍然在着手處理程序使用新的(對我)的術語。我敢肯定,我只是忽略了一個非常簡單的解決方案。先謝謝你。

+0

我可以在Eclipse中做到這一點,如果你會再次回到它。 – Gianmarco

回答

1

我能夠通過使用JarSplice以使Windows EXE,包括內當地人來解決這個問題。

0

我不知道IntelliJ是什麼,所以我不確定這會有多大的幫助,但是我幾年前在LWJGL上做了這樣的事情。

LWJGL依賴於本機庫,操作系統依賴於從真正的本機文件加載。你無法從jar中加載它們。所以,你可以把它們放入jar中,但是你必須編寫一些代碼(在你試圖調用任何LWJGL的東西之前運行),它將在運行時從jar中提取所需的本地代碼並將它們保存在系統臨時目錄(或任何地方)然後加載它們System.load

然後,您必須從org.lwjgl.Sys(函數doLoadLibraryloadLibrary)刪除/註釋掉正常的庫加載代碼。這應該做到這一點。

編輯:類似的問題在這裏:How to make a JAR file that includes DLL files?

1

我也使用IntelliJ,我也有類似的問題。如果你把你的當地人到一個文件夾的地方靠近你,使用像你public static void main方法開始執行以下操作:

System.setProperty("org.lwjgl.librarypath", PATH_TO_LIBS); 

請注意,您可能需要預先考慮到System.getProperty("user.dir")PATH_TO_LIBS前,我不某些。

附錄:你說你想用你的jar自動創建任何附加文件?查看IntelliJ的工件。轉到項目設置,選擇工件,然後使用加號按鈕添加工件。一旦你添加了一個工件,你可以混淆一邊的文件結構,添加到其他文件夾(如本地文件夾或資源文件夾)中。一旦你完成了,你可以點擊Build> Artifacts,它會自動爲你打包,並把它們放到一個目錄中(你可以在Artifact窗口中指定)。