当我正确导入所述类并在其目录中查看它时,为什么会出现 ClassNotFoundException?

2023-12-26

这是我的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 文件中逐行撕下了这段代码。

  • jar 文件正确位于引用的位置

当我运行我的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();
    }
}
  1. 我导入正确吗?
  2. 我是否在 Javac 语句中错误地引用了我的 jar 文件?
  3. 如果我清楚地看到Canvas3D在其正确的目录中,为什么 java 找不到它?
  4. 两者中的第一个文件夹j3dcore.jar and vecmath.jar是“javax”。编译器是否感到困惑?
  5. 如果编译器感到困惑,在引用它时如何指定在哪里找到该确切的类 在我的源代码中?

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(使用前将#替换为@)

当我正确导入所述类并在其目录中查看它时,为什么会出现 ClassNotFoundException? 的相关文章

随机推荐