天天看點

Linux jogl配置

因為工作需要,這幾天在ubuntu下配置jogl,我們知道如果在java中使用一些jar包什麼的,都是将這放到CLASSPATH中,但是jogl是需要調Native庫的,除了設定CLASSPATH,還需要設定Native庫。

不同的系統jogl的包的名稱是不一樣的,下表列出了各個系統上所需要的包,這些可以在

64-bit Windows

64-bit Linux

32/64-bit Mac

gluegen-rt.jar

jogl.all.jar

gluegen-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庫沒配置好。