0

编译某些代码以显示 X3D 文件时出现错误。我运行代码时遇到的错误是:

java.lang.ExceptionInInitializerError 原因:java.lang.RuntimeException:无法编译的源代码 - xj3dtest.Xj3DTest 中不存在包 org.web3d.x3d.sai。(Xj3DTest.java:7)线程“main”Java 结果中的异常: 1

我拥有的java代码是:

package xj3dtest;

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import javax.swing.JFrame;
import org.web3d.x3d.sai.Browser;
import org.web3d.x3d.sai.BrowserFactory;
import org.web3d.x3d.sai.X3DComponent;
import org.web3d.x3d.sai.X3DScene;

public class Xj3DTest extends JFrame {

    public Xj3DTest(String title) {

        super(title);

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        X3DComponent x3dComponent = BrowserFactory.createX3DComponent(null);

        Browser browser = x3dComponent.getBrowser();

        Component browserComponent = (Component)  x3dComponent.getImplementation();

        Container cp = getContentPane();
        cp.setLayout(new BorderLayout());
        cp.add(browserComponent, BorderLayout.CENTER);

        X3DScene scene = browser.createX3DFromURL(new String[]   {"test.x3dv"});

        browser.replaceWorld(scene);
    }

    public static void main(String[] args) {
        Xj3DTest frame = new Xj3DTest("Xj3D test");
        frame.setSize(640, 480);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}

在 test.x3dv 文件中,我有:

#X3D V3.0 utf8

PROFILE Interactive

DEF TS TimeSensor {
  cycleInterval 3
  loop TRUE
}

DEF TG Transform {
  rotation 0 1 0 0
  children Shape {
    geometry Box {}
    appearance Appearance {
      material DEF MAT Material {
        diffuseColor 1 0 0
      }
    }
  }
}

DEF OI OrientationInterpolator {
  key [ 0 0.5 1 ]
  keyValue [
     0 1 0 0
     0 1 0 3.14
     0 1 0 6.28
  ]
}

ROUTE TS.fraction_changed TO OI.set_fraction
ROUTE OI.value_changed TO TG.rotation

我在第 7、8、9 和 10 行都有错误,都说它们各自的包不存在。我创建了一个带有 jar 的 Xj3D 库,并将以下命令行放入项目属性中的 VM 选项中:-Xmx450M -Djava.library.path='F:\Uni\Uni work\Year Three\xj3d -code-12559-trunk\bin' 因为那是我得到 Xj3D 代码的地方。

4

0 回答 0