这是我的Javac编译声明:
javac -cp “C:\的java \代码\ J3D \ j3dcore.jar; C:\的java \代码\ J3D \ j3dutils.jar; C:\的java \代码\ J3D \ vecmath.jar” Simple.java
三个jar文件(j3dcore
,j3dutils
和vecmath
)是我的程序必不可少的jar(或者至少我被引导相信this official tutorial on J3D
对于记录,我将这段代码从上面的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();
}
}
Canvas3D
,为什么java无法找到它?j3dcore.jar
和vecmath.jar
中的第一个文件夹是“javax”。编译器是否会混淆?答案 0 :(得分:4)
尝试:
java -cp "C:\java\code\j3D\j3dcore.jar;C:\java\code\j3D\j3dutils.jar;C:\java\code\j3D\vecmath.jar" Simple
您还需要在java
命令行中包含类路径。
答案 1 :(得分:1)
只是做java simple
不会有帮助。在运行程序时,需要将所有这些jar放在类路径中。就像你编译它一样。
java -cp C:\java\code\j3D\j3dcore.jar;C:\java\code\j3D\j3dutils.jar;C:\java\code\j3D\vecmath.jar Simple