2013-03-12 2 views
0

Я пытаюсь разработать приложение java3d, я пробую все, я просто загружаю платформу jogamp, потому что, как я мог читать на многих сайтах, java3d устарел и для mac os x вам это нужно, я помещаю их все в/System/Frameworks/Java/Extensions, где находятся мои .jar-файлы, чтобы не добавлять к пути к классам в Eclipse, но он по-прежнему получает ту же ошибку:Исключение из потока «main» java.lang.NoClassDefFoundError в Java3D

Exception in thread "main" java.lang.NoClassDefFoundError: javax/media/opengl/AbstractGraphicsDevice 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:171) 
    at javax.media.j3d.Pipeline$1.run(Pipeline.java:143) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.media.j3d.Pipeline.createPipeline(Pipeline.java:138) 
    at javax.media.j3d.MasterControl.loadLibraries(MasterControl.java:926) 
    at javax.media.j3d.VirtualUniverse.<clinit>(VirtualUniverse.java:280) 
    at javax.media.j3d.Canvas3D.<clinit>(Canvas3D.java:3862) 
    at Apartado_a.<init>(Apartado_a.java:17) 
    at Apartado_a.main(Apartado_a.java:67) 
Caused by: java.lang.ClassNotFoundException: javax.media.opengl.AbstractGraphicsDevice 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at sun.misc.Launcher$ExtClassLoader.findClass(Launcher.java:229) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
    ... 10 more 

это файлы внутри папки расширений:

j3daudio.jar 
j3dcore.jar 
j3dutils.jar 
joal-natives-macosx-universal.jar 
jogl-all.jar 
gluegen-rt.jar 
gluegen-rt-natives-macosx-universal.jar 

С уважением!

+0

Почему вы не хотите добавлять их в путь к классам? –

+0

Ну, когда я добавляю JRE в пути сборки, все файлы jar включаются в мой проект, поэтому нет смысла снова добавлять к пути к классам – Enot

+0

Ну, наконец, я исправил его, просто проблема с новой версией JDK, 1.7 не работает с Java3D , по крайней мере, в Mountain Lion, только что настроенный для версии 1.6 или второстепенной версии отлично подходит для меня :) – Enot

ответ

0

Mac OS X поставляется с предустановленной версией Java 3D версии 1.3. Эти файлы можно найти в/System/Library/Java/Extensions. Если вам нужно установить Java 3D версии 1.5 (и это звучит так, как вы), вы можете использовать этот установщик: http://create.ife.no/vr/tools/j3d/java3d_1_5_2-macosx.pkg.zip

+0

Ну, ничего не меняется, теперь он получает другое noclassdeffounderror ... это заводит мои орехи! ... Исключение в потоке "J3D-рендер-1" java.lang.NoClassDefFoundError: яблоко/AWT/ComponentModel \t в com.sun.opengl.impl.JAWT_DrawingSurface.GetDrawingSurfaceInfo0 (Native Method) ... – Enot

0

Не используйте для этого папку/System/Frameworks/Java/Extensions.

Вместо этого включите соответствующие библиотеки в папку lib/вашего приложения. Также проверьте, какую версию JDK вы используете. Я считаю, что есть некоторые проблемы с Java3D, работающими на новых JVM, предоставляемых Apple, по сравнению с более старыми версиями Oracle/Sun.

+0

В моем проекте нет папки lib, вы имеете в виду папку Eclipse? – Enot

+0

Независимо от того, что вы используете в качестве локального пути к классам, убедитесь, что библиотеки там. Обычно это папка lib /, но это может быть что угодно. – JohnnyO

+0

Я использую Системную библиотеку JRE как путь к классам, где есть библиотеки, и всегда получает ту же ошибку, даже добавив другую папку с теми же файлами jar, чтобы получить ту же ошибку, я считаю, что мне не хватает какой-либо библиотеки, но я не знаете, какой из них. – Enot

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