0

我正在尝试开发一个 java3d 应用程序,我尝试了一切,我只是下载了 jogamp 平台,因为我可以在许多网站上阅读 java3d 已过时,而对于 mac os x 你需要这个,我把它们都放在 /System/ Frameworks/Java/Extensions 我的 .jar 文件在哪里,以便不添加到 Eclipse 中的类路径,但仍然出现相同的错误:

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

问候!

4

2 回答 2

0

不要为此使用 /System/Frameworks/Java/Extensions 文件夹。

相反,将相关库包含在应用程序的 lib/ 文件夹中。此外,请检查您使用的 JDK 版本。我认为在 Apple 提供的较新 JVM 上运行 Java3D 与在 Oracle/Sun 提供的较旧的 JVM 上运行存在一些问题。

于 2013-03-18T13:42:08.907 回答
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

于 2013-03-12T19:21:04.033 回答