Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java tools & IDE's > NetBeans + JOGL = исключение под Linux :-(


Автор: kemiisto 25.1.2009, 03:00
Сейчас попытался запустить свою програмку под Linux (пишу в Mac OS). В папке с проектом NetBeans собрал jar для разных платформ. Взяв нужный (dist-linux-i586) и запустив, обнаружил, что как только дело доходит до инициализации OpenGL, валится:
Цитата
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: no gluegen-rt in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1709)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.System.loadLibrary(System.java:1030)
    at com.sun.gluegen.runtime.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:102)
    at com.sun.gluegen.runtime.NativeLibLoader.access$000(NativeLibLoader.java:51)
    at com.sun.gluegen.runtime.NativeLibLoader$1.run(NativeLibLoader.java:70)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.gluegen.runtime.NativeLibLoader.loadGlueGenRT(NativeLibLoader.java:68)
    at com.sun.gluegen.runtime.NativeLibrary.ensureNativeLibLoaded(NativeLibrary.java:399)
    at com.sun.gluegen.runtime.NativeLibrary.open(NativeLibrary.java:163)
    at com.sun.gluegen.runtime.NativeLibrary.open(NativeLibrary.java:129)
    at com.sun.opengl.impl.x11.DRIHack.begin(DRIHack.java:109)
    at com.sun.opengl.impl.x11.X11GLDrawableFactory.<clinit>(X11GLDrawableFactory.java:99)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:169)
    at javax.media.opengl.GLDrawableFactory.getFactory(GLDrawableFactory.java:111)
    at javax.media.opengl.GLJPanel.initialize(GLJPanel.java:889)
    at javax.media.opengl.GLJPanel.paintComponent(GLJPanel.java:488)
    at javax.swing.JComponent.paint(JComponent.java:1027)
    at javax.swing.JComponent.paintChildren(JComponent.java:864)
    at javax.swing.JComponent.paint(JComponent.java:1036)
    at javax.swing.JComponent.paintChildren(JComponent.java:864)
    at javax.swing.JComponent.paint(JComponent.java:1036)
    at javax.swing.JComponent.paintChildren(JComponent.java:864)
    at javax.swing.JComponent.paint(JComponent.java:1036)
    at javax.swing.JComponent.paintToOffscreen(JComponent.java:5122)
    at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:277)
    at javax.swing.RepaintManager.paint(RepaintManager.java:1217)
    at javax.swing.JComponent._paintImmediately(JComponent.java:5070)
    at javax.swing.JComponent.paintImmediately(JComponent.java:4880)
    at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:803)
    at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:714)
    at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:694)
    at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:128)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)


Как я понял он не может найти нативную библиотеку gluegen-rt. В той же папке, рядышком с jar, лежит файлик libgluegen-rt.so, а в папке lib находятся файлы gluegen-rt.jar и jogl.jar. 

Как я понял, устанавливать JOGL при таком раскладе не обязательно, но всё-таки решил подстраховаться. Установка ничего не изменила. JOGL установился в папку /usr/share/java. Обнаружив, что CLASSPATH пуст, я сделал так:
Цитата
export CLASSPATH=.:/usr/share/java

Но и это не помогло.

Ещё пытался пускать вот так:
Цитата
java -jar -cp lib GUI.jar

но...

Я больше не могу! Что я делаю не так? Помогите! smile 

Автор: kemiisto 25.1.2009, 03:22
Почитал тут немного в одной из тем в списке ниже, попробую сейчас так:
Цитата
export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH

Авось...

Добавлено через 3 минуты и 5 секунд
 smile "А ларчик просто окрывался!"

Автор: ArtiSoft 20.5.2010, 23:31
А с такой проблемой не сталкивался когда вот так библиотека грузится
import javax.media.opengl.glu.*;
а так
import javax.media.opengl.GLCanvas;
т.е. его классы не грузится пишется след ощибка;
Access restriction: The type GLCanvas is not accessible due to restriction on required library /usr/lib/jvm/java-6-openjdk/jre/lib/ext/jogl.jar

Автор: dobrolub 21.5.2010, 00:02
под Eclipsе? 
http://lkamal.blogspot.com/2008/09/eclipse-access-restriction-on-library.html

Автор: ArtiSoft 21.5.2010, 00:17
Да под Eclipse

Автор: dobrolub 21.5.2010, 00:29
А, ну тогда инструкции под линком должны подойти.

Автор: ArtiSoft 21.5.2010, 22:47
dobrolub тебе очень большое спасибо!! сработало все!!! он просто запрешал использовать API функций

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)