2012-03-09 2 views
0

Я пытаюсь запустить программу Java, содержащую команды OpenGL, и она компилируется. Я использую netbeans и добавил необходимые библиотеки.Запуск команд OpenGL в Java-программе

Но я получаю это:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no jogl in java.library.path 
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860) 
at java.lang.Runtime.loadLibrary0(Runtime.java:845) 
at java.lang.System.loadLibrary(System.java:1084) 
at com.sun.opengl.impl.NativeLibLoader$1.run(NativeLibLoader.java:111) 
etc etc etc. 

думаю, что это может быть что-то с пути, но ничего работы-

+0

Я давно использовал JOGL в Windows, но помню, что вам нужно указать ВСЕ необходимые .dll (или .so) в чем-то вроде '-Djava.library.path = ...' - у них есть хороший readme в дистрибутиве. –

+0

вам не хватает jogl.dll или jogl.lib (зависимая от ОС родная библиотека) в папках, на которые ссылается свойство java.library.path, которое обычно является папкой/bin вашей JRE из того, что я помню. – mcfinnigan

ответ

3

Для использования JOGL, программа должна JOGL JAR-файлы и JOGL родные библиотеки (например, файлы DLL на Windows). Трассировка стека указывает, что родные библиотеки не найдены. Путь Java ищет собственные библиотеки зависит от системы, но и на Windows, у вас есть несколько вариантов, чтобы получить нативные библиотеки JOGL загружены:

  • Место нативные библиотеки в папку, на который ссылается переменная PATH от Windows;
  • Я помню, что в папке установки JRE имеется специальная вложенная папка, которая также может использоваться для родных библиотек;
  • Добавьте папку с родными библиотеками в переменную Windows PATH;
  • Укажите папку с родными библиотеками в параметре -Djava.library.path при запуске java.exe;
  • Перед запуском java.exe установите папку с родными библиотеками в качестве текущей папки.

Для первых трех вариантов могут потребоваться права администратора. По какой-то причине я не получил четвертый вариант работы. Итак, мое приложение JOGL использует пятый вариант, и он отлично работает.

Смежные вопросы