找不到Java3D类

时间:2012-11-13 17:25:26

标签: java osx-mountain-lion java-3d

我正在尝试运行Java应用程序,但是收到以下错误消息。应用程序本身正确加载,它似乎只是某些部分失败。

Nov 13, 2012 2:43:53 PM org.jdesktop.application.Task failed
SEVERE: My.Application$9@7c4f8358 failed: java.lang.NoClassDefFoundError: javax/media/opengl/GLCapabilitiesChooser
java.lang.NoClassDefFoundError: javax/media/opengl/GLCapabilitiesChooser
at jpl.mipl.jade.jadis.agile2d.swing.JOGLPluggableRenderer.notifyBeforeSetRootPane(JOGLPluggableRenderer.java:105)
at jpl.mipl.jade.jadis.StereoJFrame.setRootPane(StereoJFrame.java:264)
at javax.swing.JFrame.frameInit(JFrame.java:236)
at javax.swing.JFrame.<init>(JFrame.java:159)
at jpl.mipl.jade.jadis.StereoJFrame.<init>(StereoJFrame.java:172)
at StereoWS.DSStereoFrame.<init>(DSStereoFrame.java:70)
at StereoWS.StereoWSView$9.doInBackground(StereoWSView.java:1067)
at org.jdesktop.swingworker.SwingWorker$1.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at org.jdesktop.swingworker.SwingWorker.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
Caused by: java.lang.ClassNotFoundException: javax.media.opengl.GLCapabilitiesChooser
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 java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 14 more

我正在运行OS X 10.8完全更新,我已经安装了JDK 7,并且令人沮丧的是,Apple的Java开发工具。该程序依赖于许多外部库,但这些是随jar一起提供的,我相信程序在运行时实际上会在分发目录中查找它们(错误不是由于那些软件包,我相信) 。据我所知,我需要运行应用程序的所有内容已经安装或者jar可以找到它的地方

我不知道我还有什么需要做的事情来设置我还没有完成的环境,所以如果有人能提出建议,我全都耳朵!我将提供所需的任何额外信息,但我不知道什么会有所帮助 - 我无论如何都不是Java大师。

1 个答案:

答案 0 :(得分:7)

我相信您使用旧Oracle网站中的Java3D jar与最新的JogAmp JOGLv2相结合,这不会有两个原因:a)jogl.jar现在重命名为jogl-all.jar B)内部命名空间更改,所有com.sun。*类现在都在com.jogamp。*下找到,这会混淆需要com.sun。*命名空间的旧Java3D代码。

JOGL和Java3D现在都由JogAmp社区的成员维护: 移动背景:http://labb.zafena.se/?p=656 今天唯一支持使用Java3D的方法是将社区维护的Java3D与最新的JogAmp JOGL v2结合使用。

如何结合JOGLv2设置最新社区维护的Java3D的教程。 Julien Gouesse:Java 3D est de retour [Java 3D回归] http://gouessej.wordpress.com/2012/08/01/java-3d-est-de-retour-java-3d-is-back/