[英]Export LWJGL natives with project? (IntelliJ IDEA)
我目前正在編寫一個依賴於LWJGL的程序。 將庫添加到我的項目中很簡單,但是我將項目導出為獨立的JAR,用戶只需雙擊完成的產品即可。
我做了什么:
渴望的結果:一個可運行的JAR,不依賴於命令行來正常打開。 我的項目中包含的其他JAR和目錄都很好,但是我希望IntelliJ盡可能自動地將它們導出到我的項目中,這樣我就不必手動將所需的文件拖到輸出目錄中並創建一個腳本使用正確的本機運行JAR。
我是IntelliJ的新手,來自Eclipse(盡管我從來沒有在Eclipse中這么做過),而且我仍然在掌握程序使用的新(對我而來)術語。 我確信有一個非常簡單的解決方案,我只是忽略了。 先感謝您。
我能夠通過使用JarSplice制作包含其中的本機的Windows EXE來解決這個問題。
我也使用IntelliJ,我也有類似的問題。 如果您將本機放入您附近的文件夾中,請在public static void main
方法的開頭使用以下內容:
System.setProperty("org.lwjgl.librarypath", PATH_TO_LIBS);
請注意,您可能必須將System.getProperty("user.dir")
到PATH_TO_LIBS
的前面,我不確定。
ADDENDUM:你說你想要用你的jar自動創建任何其他文件嗎? 查看IntelliJ的工件。 轉到項目設置,選擇工件,然后使用加號按鈕添加工件。 一旦你獲得了一個工件,你就可以在一邊亂用文件結構,添加其他文件夾(例如natives文件夾或資源文件夾)。 完成后,您可以單擊Build> Artifacts並自動為它們打包,並將它們放在一個目錄中(您可以在Artifact窗口中指定)。
我不知道IntelliJ是什么,所以我不確定它會有多大幫助,但幾年前我用LWJGL做了類似的事情。
LWJGL依賴於本機庫,操作系統依賴於從真實本機文件加載。 你無法從罐子里裝載它們。 所以,你可以將它們放在jar中,但是你必須編寫一些代碼(在你嘗試調用任何LWJGL之前運行它們),這些代碼將在運行時從jar中提取所需的native(s)並將它們保存在系統臨時目錄(或任何地方)然后使用System.load
加載它們。
然后你必須從org.lwjgl.Sys
(函數doLoadLibrary
和loadLibrary
)中刪除/注釋掉正常的庫加載代碼。 應該這樣做。
編輯:類似的問題在這里: 如何制作包含DLL文件的JAR文件?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.