Java3D错误:Java.Lang.NoClassDefFoundError

时间:2018-03-15 03:13:09

标签: java java-3d

这是Java 3D中的代码:

import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.universe.SimpleUniverse;
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.GraphicsConfiguration;
import javafx.scene.transform.Transform;
import javax.media.j3d.Canvas3D;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.Transform3D;
import javax.media.j3d.TransformGroup;
import javax.vecmath.Vector3f;

class Esercizio3dot1 extends Applet {

    public Esercizio3dot1() {

        setLayout(new BorderLayout());
        Transform3D t = new Transform3D();
        GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
        Canvas3D canvas = new Canvas3D(config);        
        add("Center", canvas);
        BranchGroup scene = CreateSceneGraph();
        scene.compile();
        SimpleUniverse universe = new SimpleUniverse(canvas);

        universe.getViewingPlatform().setNominalViewingTransform();
        universe.addBranchGraph(scene);

    }

    public BranchGroup CreateSceneGraph() {

        BranchGroup bg = new BranchGroup();
        TransformGroup tg = CreateSubGraph();
        bg.addChild(tg);
        return bg;
    }

    public TransformGroup CreateSubGraph() {

        TransformGroup tg = new TransformGroup();
        tg.addChild(new ColorCube(0.3));
        return tg;

    }

    public static void main(String[] args) {
        System.setProperty("sun.awt.noerasebackground", "true");
        new MainFrame(new Esercizio3dot1(), 300, 300);

    }

}

代码编译正确但是当我运行控制台时会产生错误(图像),我该怎么解决?

error

我安装了最新版本的3d java,但情况没有改变,错误也一样显示。

1 个答案:

答案 0 :(得分:0)

首先,Java3D和JavaFX 3D是两个截然不同且不兼容的库,这就是你应该删除import javafx.scene.transform.Transform;的原因。

其次,没有必要“安装”Java3D,它是一个由JAR组成的Java库,这些JAR必须在类路径中,就像大多数第三方Java库一样。我建议你阅读my very detailed tutorial,它解释了如何使用Java3D 1.6.0和1.7.0。

您的源代码与Java3D 1.6.0兼容,但与Java3D 1.7.0不兼容,因为此版本中的软件包已被重命名,因为它不受Oracle的控制(因此它不能使用“javax”术语)。 / p>