Dies ist meine Javac-Kompilieranweisung:
javac -cp " C:\java\code\j3D\j3dcore.jar ; C:\java\code\j3D\j3dutils.jar ; C:\java\code\j3D\vecmath.jar " Einfach.java
- kompiliert ohne Probleme.
Die drei jar-Dateien ( j3dcore
, j3dutils
y vecmath
) sind die wesentlichen Gefäße für mein Programm (oder zumindest bin ich der Meinung, dass sie laut dieses offizielle Tutorial über J3D
Für das Protokoll habe ich diesen Code fast Zeile für Zeile aus der oben genannten PDF-Datei übernommen.
- jar-Dateien befinden sich korrekt an den referenzierten Orten
Wenn ich meine Simple
Programm, ( java Simple
) Ich werde begrüßt mit
Ausnahme im Thread "main" java.lang.NoClassDefFoundError: javax/media/j3d/Cavas3d Caused by: java.lang.ClassNotFoundExpection: javax.media.j3d.Canvas3D
Zurzeit starre ich direkt auf dieses Bild Canvas3D.class
die sich innerhalb von j3dcore.jar\javax\media\j3d\
wtfisthis.jpg
Hier ist der Quellcode:
//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();
}
}
- Habe ich richtig importiert?
- Habe ich meine jar-Dateien in meiner Javac-Anweisung falsch referenziert?
- Wenn ich deutlich sehe
Canvas3D
in seinem richtigen Verzeichnis, warum findet Java es nicht? - Der erste Ordner in beiden
j3dcore.jar
yvecmath.jar
ist "javax". Ist der Compiler verwirrt? - Wenn der Compiler verwirrt ist, wie kann ich angeben, wo genau die Klasse zu finden ist, wenn ich sie referenziere in meinem Quellcode?