从ant文件构建这个项目后,我收到一个包含我构建的所有类的jar.当我尝试运行此jar时,出现以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/media/j3d/SceneGraphObject
Run Code Online (Sandbox Code Playgroud)
此错误表示j3dcore.jar无法找到其中一个罐子,特别是来自java3d 的罐子.但是,通过将ant构建编译到类文件中时,此jar位于类路径中.
为什么在运行时找不到这个类,但是在编译时可以找到它?在运行jar时我是否必须在shell中手动更改我的类路径以及在ant构建中更改它?
如果我使用jar将jar添加到我的类路径中 java -cp j3d/*.jar -jar idv.jar
我收到了错误 Error: Could not find or load main class j3d.j3dutils.jar
我已经尝试了几个小时来使我的macbook上的java 3d工作,我无法弄清楚它有什么问题...这就是我所做的:
- 我下载了java3d 1.5并替换了/中的原始文件系统/图书馆/的Java /扩展.
- 然后我按照相同(...)/ 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)
Run Code Online (Sandbox Code Playgroud)
这是我的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
Run Code Online (Sandbox Code Playgroud)
我可以使用javac编译java 3d代码,但这是我尝试启动时的结果:
$> java Hello3d
JavaVM WARNING: JAWT_GetAWT must be called after loading a JVM
AWT …Run Code Online (Sandbox Code Playgroud) 我正在尝试运行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
Run Code Online (Sandbox Code Playgroud)
我正在运行OS X 10.8完全更新,我安装了JDK 7,并且令人沮丧的是,Apple的Java开发工具.该方案依赖于许多外部库,但这些都与罐子供应,我相信程序没有真正寻找他们在分发目录在运行时(误差不是由于这些包不过,我相信) .据我所知,运行应用程序所需的一切都已安装或jar可以找到它
我不知道我还需要做些什么才能建立我尚未完成的环境,所以如果有人能提出建议的话,我全都听见了!我将提供所需的任何额外信息,但我不知道会有什么帮助 - 我不是任何方式的Java大师.
我从未做过任何3D编程,并且正在进行3D飞机碰撞模拟.我打算用Java做,虽然我知道C++可能更受欢迎,但我没有经验,而且时间有限.
任何人都可以推荐任何引擎或包装?我知道有Java3D,但现在不是有点老了吗?我也见过JMonkey Engine,虽然这是游戏,我相信它对于模拟软件会没问题吗?
谢谢!