这是我的Javac编译语句:
javac-cp
“C:\java\code\j3D\j3dcore.jar;C:\java\code\j3D\j3dutils.jar;C:\java\code\j3D\vecmath.jar”
简单.java
三个 jar 文件(j3dcore
, j3dutils
, and vecmath
)是我的程序的基本罐子(或者至少我被引导相信根据J3D 官方教程 http://java.sun.com/developer/onlineTraining/java3d/j3d_tutorial_ch1.pdf
作为记录,我几乎从上面的 pdf 文件中逐行撕下了这段代码。
当我运行我的Simple
程序, (java Simple
)我受到了欢迎
线程“main”java.lang.NoClassDefFoundError 中出现异常:
javax/media/j3d/Cavas3d 原因:java.lang.ClassNotFoundExpection:
javax.media.j3d.Canvas3D
目前我正直视着这个Canvas3D.class
位于j3dcore.jar\javax\media\j3d\
wtfisthis.jpg
这是源代码:
//First java3D Program
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.event.*;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.universe.*;
import com.sun.j3d.utils.geometry.ColorCube;
import javax.media.j3d.*;
import javax.vecmath.*;
import java.awt.GraphicsConfiguration;
public class Simple extends Applet {
public Simple() {
setLayout(new BorderLayout());
GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
Canvas3D canvas3D = new Canvas3D(config);
add("Center", canvas3D);
BranchGroup scene = createSceneGraph();
scene.compile();
// SimpleUniverse is a Convenience Utility class
SimpleUniverse simpleU = new SimpleUniverse(canvas3D);
// This moves the ViewPlatform back a bit so the
// objects in the scene can be viewed.
simpleU.getViewingPlatform().setNominalViewingTransform();
simpleU.addBranchGraph(scene);
} // end of HelloJava3Da (constructor)
public BranchGroup createSceneGraph() {
// Create the root of the branch graph
BranchGroup objRoot = new BranchGroup();
// Create a simple shape leaf node, add it to the scene graph.
// ColorCube is a Convenience Utility class
objRoot.addChild(new ColorCube(0.4));
return objRoot;
}
public static void main(String args[]){
Simple world = new Simple();
}
}
- 我导入正确吗?
- 我是否在 Javac 语句中错误地引用了我的 jar 文件?
- 如果我清楚地看到
Canvas3D
在其正确的目录中,为什么 java 找不到它?
- 两者中的第一个文件夹
j3dcore.jar
and vecmath.jar
是“javax”。编译器是否感到困惑?
- 如果编译器感到困惑,在引用它时如何指定在哪里找到该确切的类
在我的源代码中?
try:
java -cp "C:\java\code\j3D\j3dcore.jar;C:\java\code\j3D\j3dutils.jar;C:\java\code\j3D\vecmath.jar" Simple
你需要包含类路径java
命令行也是如此。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)