LWJGL(Lightweight Java Game Library)它可以幫助Java程序員開發有着商業性質的遊戲.LWJGL爲開發者提供簡單易用的API來訪問OpenGL (Open Graphics Library)與OpenAL (Open Audio Library) 同也提供操作控制器(Gamepads, Steering wheel和操縱桿)的API.
lwjgl是個綁定OpenGL的java包,可以使用lwjgl來編寫OpenGL程序,然後發佈爲jar包的形式。
我的IED是Intellij,因要包含native文件和而外的jar包,所以發佈要麻煩點。
在使用LWJGL時首先需要倒入相應jar和native文件。運行時連接native文件一般有兩種方式
1:在VM Option 運行參數裏添加 -Djava.library.path=native/windows(native/windows是放dll文件的地方,一般在項目下面)
2: System.setProperty("org.lwjgl.librarypath",System.getProperty("user.dir") + "/native/windows");這種方式是寫在程序入口,在主方法裏面第一行
下面是打包:
項目目錄結構:
在Intellij裏面打包很簡單,Ctrl+Shift+S,進入項目Project Structure,選擇Artifacts,添加jar(中間上面的加號),有Empty和from modules with dependency,如果選擇Empty,需要自定義另外需要添加的其他jar或者class這些。在依賴裏暫時還沒找到怎麼添加native文件,所以直接選擇from modules with dependency 。 到這裏就ok了,然後build生成的artifacts如下:
那個native文件夾是手動複製到裏面去的,然後在代碼裏手動指定native目錄,
System.setProperty("org.lwjgl.librarypath",System.getProperty("user.dir") + "/native/windows");
System.getProperty("user.dir")就是jar包運行時所在目錄。
在這裏打包和選擇Empty打包有個區別:
Empty方式會將所依賴的包打到當前包下面。
而from modules with dependency方式不會將依賴的jar打包到當前jar包下。
所以選擇使用from modules with dependency方式。現在在Intellijartifact輸出目錄裏點擊運行發佈的jar,運行ok
運行界面如下
將剛纔的項目打包成一個jar包:
打包工具有很多,這裏選擇http://ninjacave.com/jarsplice,這個工具可以將jar包,dll文件打包成一個jar,會將多依賴的jar包解壓,dll文件直接導出。
用這個工具打包需要注意,dll文件已經導入到當前jar目錄裏,所以不用設置
2: System.setProperty("org.lwjgl.librarypath",System.getProperty("user.dir") + "/native/windows");
打包結果如下: