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");
打包结果如下: