【发布时间】:2012-10-05 01:54:05
【问题描述】:
我已经尝试了几个小时让 java 3d 在我的 macbook 上工作,但我无法弄清楚它有什么问题......
这是我所做的:
- 我下载了 java3d 1.5 并替换了 /System/Library/Java/Extensions 中的原始文件。
- 然后我按照教程在同一 (...)/Java/Extensions 文件夹中安装了 JOGL。
- 由于它仍然不起作用,我决定尝试 java3d 的原始版本,所以我重命名了文件。
我正在使用 java 1.7.0_07 开发 Mac os x 山狮
这是 java -version 的结果:
java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)
这是我的 Java/extensions 文件夹的内容:
AppleScriptEngine.jar gluegen-rt.jar j3dutils.jar.new libAppleScriptEngine.jnilib libgluegen-rt.jnilib libnewt.jnilib
MRJToolkit.jar j3daudio.jar jai_codec.jar libJ3D.jnilib libjogl_desktop.jnilib mlibwrapper_jai.jar
QTJava.zip j3dcore.jar jai_core.jar libJ3DAudio.jnilib libmlib_jai.jnilib vecmath.jar
dns_sd.jar j3dcore.jar.new jogl-all.jar libJ3DUtils.jnilib libnativewindow_awt.jnilib vecmath.jar.new
gluegen-java-src.zip j3dutils.jar jogl-java-src.zip libQTJNative.jnilib libnativewindow_macosx.jnilib
我可以用 javac 编译 java 3d 代码,但这是我尝试启动它时的结果:
$> java Hello3d
JavaVM WARNING: JAWT_GetAWT must be called after loading a JVM
AWT not found
Exception in thread "main" java.lang.NoClassDefFoundError: apple/awt/CGraphicsDevice
at javax.media.j3d.GraphicsConfigTemplate3D.<clinit> (GraphicsConfigTemplate3D.java:55)
at com.sun.j3d.utils.universe.SimpleUniverse.getPreferredConfiguration(SimpleUniverse.java:368)
at com.sun.j3d.utils.universe.Viewer.<init>(Viewer.java:348)
at com.sun.j3d.utils.universe.Viewer.<init>(Viewer.java:298)
at com.sun.j3d.utils.universe.SimpleUniverse.<init>(SimpleUniverse.java:215)
at com.sun.j3d.utils.universe.SimpleUniverse.<init>(SimpleUniverse.java:177)
at com.sun.j3d.utils.universe.SimpleUniverse.<init>(SimpleUniverse.java:88)
at Hello3d.<init>(Hello3d.java:13)
at Hello3d.main(Hello3d.java:27)
Caused by: java.lang.ClassNotFoundException: apple.awt.CGraphicsDevice
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:423)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 9 more
我试图启动的 java 类来自the official tutorial。
你知道我该如何解决这个问题吗?
感谢您的帮助!
【问题讨论】:
-
首先,安装 Java3D 或任何其他 Java 库作为扩展或在 JVM 中是一个坏主意。在使用 Java Webstart、applet 和其他应用程序时可能会导致冲突。您引用的“官方”教程既不是官方的也不是最新的,而我的是:gouessej.wordpress.com/2012/08/01/… 遵循哈维的以下建议,它应该可以完美运行。
标签: java macos osx-mountain-lion java-3d