因為工作需要,這幾天在ubuntu下配置jogl,我們知道如果在java中使用一些jar包什麼的,都是將這放到CLASSPATH中,但是jogl是需要調Native庫的,除了設定CLASSPATH,還需要設定Native庫。
不同的系統jogl的包的名稱是不一樣的,下表列出了各個系統上所需要的包,這些可以在
http://jogamp.org/wiki/index.php/Downloading_and_installing_JOGL上找到。
| 64-bit Windows |
64-bit Linux |
32/64-bit Mac |
| gluegen-rt.jar |
gluegen-rt.jar |
gluegen-rt.jar |
| jogl.all.jar |
jogl.all.jar |
jogl.all.jar |
| gluegen-java-src.zip |
gluegen-java-src.zip |
gluegen-java-src.zip |
| jogl-java-src.zip |
jogl-java-src.zip |
jogl-java-src.zip |
| gluegen-rt-natives-windows-amd64.jar |
gluegen-rt-natives-linux-amd64.jar |
gluegen-rt-natives-macosx-universal.jar |
| jogl-all-natives-windows-amd64.jar |
jogl-all-natives-linux-amd64.jar |
jogl-all-natives-macosx-universal.jar |
安裝Native 庫
apt-get install libjogl2-jni
安裝之後會有下列檔案
- /usr/lib/jni/libjogl_desktop.so
- /usr/lib/jni/libjogl_mobile.so
- /usr/lib/jni/libnativewindow_awt.so
- /usr/lib/jni/libnativewindow_x11.so
- /usr/lib/jni/libnewt.so
- /usr/share/doc/libjogl2-jni/changelog.Debian.gz
- /usr/share/doc/libjogl2-jni/copyright
配置
將jar包配置到CLASSPATH中
CLASSPATH=.:$JAVA_HOME/lib.tools.jar:/usr/local/lib/jogl/jogl.all.jar:/usr/local/lib/jogl/gluegen-rt.jar:/usr/local/lib/jogl/jogl-all-natives-linux-amd64.jar
將native庫配置到放到eclipse的編譯參數中。
-Djava.library.path="/usr/local/lib/jogl"
測試代碼
import javax.media.opengl.*;
public class HelloWorld {
public static void main(String[] args) {
System.out.println(System.getProperty("java.library.path"));
System.loadLibrary("jogl");
GLProfile profile = GLProfile.get(GLProfile.GL2ES2);
GLCapabilities capabilities = new GLCapabilities(profile);
System.out.println("OK,You do it!");
}
}
如果遇到錯誤:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jogl in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1738)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1028)
at HelloWorld.main(HelloWorld.java:9)
大多數是Native庫沒配置好。