Я видел этот вопрос, поднятый пару раз на этом веб-сайте, но на самом деле не видел ясного ответа, поэтому извините, что я повторяю его. При программировании с помощью JOGL и Java3D я обнаружил некоторые ошибки. Я пытался создать проект, который я мог бы в конечном итоге разместить в Android App Store. Я начал проект только с помощью Java3D и JOGL и поместил их в системную библиотеку на моем mac, где они отлично работали. Затем, чтобы попытаться сделать перенос проекта, я переместил файлы J3D и JOGL внутри проекта, чтобы их можно было скомпилировать в файл jar, который можно было бы запустить без необходимости установки j3d и JOGL. Но каждый раз, когда я запускал проект он бросил эту ошибку:JOGL бросает ClassNotFoundException?
Exception in thread "main" java.lang.NoClassDefFoundError: javax/media/opengl/GL
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:190)
at javax.media.j3d.Pipeline$PipelineCreator.run(Pipeline.java:73)
at javax.media.j3d.Pipeline$PipelineCreator.run(Pipeline.java:61)
at java.security.AccessController.doPrivileged(Native Method)
at javax.media.j3d.Pipeline.createPipeline(Pipeline.java:90)
at javax.media.j3d.MasterControl.loadLibraries(MasterControl.java:832)
at javax.media.j3d.VirtualUniverse.<clinit>(VirtualUniverse.java:274)
at javax.media.j3d.GroupRetained.<init>(GroupRetained.java:155)
at javax.media.j3d.TransformGroupRetained.<init>(TransformGroupRetained.java:116)
at javax.media.j3d.TransformGroup.createRetained(TransformGroup.java:114)
at javax.media.j3d.SceneGraphObject.<init>(SceneGraphObject.java:114)
at javax.media.j3d.Node.<init>(Node.java:172)
at javax.media.j3d.Group.<init>(Group.java:549)
at javax.media.j3d.TransformGroup.<init>(TransformGroup.java:87)
at src.Project.<clinit>(Project.java:47)
at src.ProjectPanel.<clinit>(ProjectPanel.java:8)
Caused by: java.lang.ClassNotFoundException: javax.media.opengl.GL
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 17 more
Я использую Eclipse в качестве IDE, и имею jogl-all.jar
и gluegen-rt.jar
файлов в пути к классам проекта, а также все требуют j3d, но по какой-то причине он не может найти файл GL.class
.
Заранее благодарим за помощь.
Я еще не экспортировал его в JAR-файл, но когда я пытаюсь сделать то, что вы сказали, он показывает это: 'Catched URISyntaxException: ожидаемая часть, относящаяся к схеме, в индексе 5: rsrc :, while TempJarCache.bootstrapNativeLib() null (null + gluegen-rt-natives-macosx-universal.jar) Исключение в потоке "main" java.lang.UnsatisfiedLinkError: Не удается загрузить библиотеку: /System/Library/Frameworks/gluegen-rt.Framework/gluegen -rt' – aprogrammer
Вам нужно будет включить gluegen-rt-туземцы * и jogl-all-natives * в проект eclipse для всех платформ, которые вы хотите поддержать, чтобы включить eclipse в экспортируемый проект. Это указано в параметрах Setting_up_a_JogAmp_project_in_your_favorite_IDE и JogAmp_JAR_File_Handling. Также проверьте, что у вас нет старых версий jogl и j3d внутри системных папок, jogamp рекомендует только развернуть jogl и j3d с вашим приложением. – xranby
У меня есть оба этих файла в пути к классам проекта eclipse, прямо сейчас для osx, и я добавлю их для других платформ, как только я получу его в osx – aprogrammer