JOGL Opengl WriteCloneable в eclipse

Я следую этому руководству.

Хотя я сделал точно так же, как в учебнике, даже я посмотрел видео. Даже я пробовал другой учебник. Но при всех моих попытках я каждый раз получал эту ошибку.

Когда я нажимаю для запуска, отображается окно с ошибкой и «Произошло исключение Java».

И я вижу, что ошибки в консоли

Exception in thread "main" java.lang.NoClassDefFoundError: com/jogamp/common/type/WriteCloneable
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$100(Unknown Source)
...

Даже я удалил jdk & jre, скачал последнюю версию и установил. Я использую eclipse, Windows 7 Home Premium 64 бит.


person Nafiz Bayındır    schedule 29.07.2012    source источник


Ответы (5)


Во-первых, его уроки содержат несколько ошибок, я уже жаловался в комментариях к его видео на Youtube. Я советую вам использовать официальные руководства в нашей вики и связаться с нами по официальный форум, если вам нужна помощь.

Вероятно, что-то было не так в вашей среде или вы использовали 32-битную версию с 64-битной JVM. Если вы не знаете, какие JAR-файлы следует использовать для нативных библиотек, просто возьмите оба и позвольте GlueGen выбрать правильный.

person gouessej    schedule 25.11.2012

Убедитесь, что вы добавили все 4 библиотеки в свой проект, вот так.

-lib
    --gluegen-rt.jar
    --gluegen-rt-natives-windows-amd64.jar
    --jogl-all.jar
    --jogl-all-natives-windows-amd64.jar

Это работает для меня :)

person wr ding    schedule 26.06.2016

Похоже, проблема с вашим путем к классам, поскольку класс WriteCloneable не найден - один или несколько нужных вам банок, вероятно, отсутствуют в пути сборки.

В Eclipse: щелкните правой кнопкой мыши вкладку "Проект/Свойства/Путь сборки Java/Библиотеки". Убедитесь в наличии всех необходимых библиотек JOGL.

person mikera    schedule 29.07.2012
comment
Я проверял это тысячу раз. Glugen-rt-Natives-Windows-i586.jar Glugen-RT.jar jogl-All-Natives-Windows-i586.jar jogl.all.jar - person Nafiz Bayındır; 29.07.2012
comment
Вероятно, в вашей среде было что-то грязное (несколько версий одного и того же JAR в пути к классам или переменная среды указывают на другую версию или некоторые двоичные файлы в зависимости от другой версии), что приводит к тому, что Java запускает двоичный файл с неправильной версией библиотеки. Если вы используете 64-битную JVM, вам следует использовать Gluegen-RT-Natives-Windows-AMD64.jar вместо Glugen-RT-Natives-Windows-i586.jar (и сделать то же самое для JOGL). - person gouessej; 25.11.2012

Была такая же проблема. Я решил это, добавив зависимости для Glugen. Сначала у меня было только:

    <dependency>
        <groupId>org.jogamp.jogl</groupId>
        <artifactId>jogl-all-main</artifactId>
        <version>2.3.2</version>
    </dependency>

это решило проблему:

    <dependency>
        <groupId>org.jogamp.gluegen</groupId>
        <artifactId>gluegen-rt-main</artifactId>
        <version>2.3.2</version>
    </dependency>
person kzwo    schedule 13.09.2016

Я нахожу решение.

Если вы получаете ошибку JVMUtil или WriteCloneable с NoClassDefFoundError, вы должны скопировать эти 4 jar библиотеки в папку java/jre/lib/ext.

спасибо за шабби.

person Nafiz Bayındır    schedule 30.07.2012
comment
Нет, это неправильное решение, оно может даже сломать вашу среду, это очень плохой совет. Никогда не копируйте файлы JAR в jre/lib/ext, иначе это вызовет конфликты, если апплет или приложение использует ту же библиотеку, но в другой версии. - person gouessej; 25.11.2012