Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
运行将X3D导入Java的代码时出现运行错误_Java_Netbeans_X3d - Fatal编程技术网

运行将X3D导入Java的代码时出现运行错误

运行将X3D导入Java的代码时出现运行错误,java,netbeans,x3d,Java,Netbeans,X3d,我正在尝试创建一个将X3D文件加载到Java中并让Java显示它们的项目,我使用Xj3D来实现这一点,但是当我运行代码时,我似乎遇到了一个错误。我已经下载了列出的所有jar。我制作了一个名为“Xj3D”的库,在项目属性的库部分,我放置了Xj3D库,在VM选项中,我放置了-Xmx450M-Djava.library.path='C:\Users\matt\Downloads\Xj3D-sai_2.0.0.jar',我在java中的代码是: package xj3dtest; import jav

我正在尝试创建一个将X3D文件加载到Java中并让Java显示它们的项目,我使用Xj3D来实现这一点,但是当我运行代码时,我似乎遇到了一个错误。我已经下载了列出的所有jar。我制作了一个名为“Xj3D”的库,在项目属性的库部分,我放置了Xj3D库,在VM选项中,我放置了
-Xmx450M-Djava.library.path='C:\Users\matt\Downloads\Xj3D-sai_2.0.0.jar'
,我在java中的代码是:

package xj3dtest;

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import static java.lang.Boolean.TRUE;
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;
import java.util.HashMap;

public class Xj3DTest extends JFrame {

    public Xj3DTest(String title) {

        super(title);

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // Setup browser parameters
        HashMap requestedParameters=new HashMap();
        requestedParameters.put("Antialiased",TRUE);
        requestedParameters.put("TextureQuality","MEDIUM");
        requestedParameters.put("PrimitiveQuality","MEDIUM");
        requestedParameters.put("Xj3D_InterfaceType","SWING");
        requestedParameters.put("Xj3D_NavbarShown",TRUE);
        requestedParameters.put("Xj3D_NavbarPosition","TOP");
        requestedParameters.put("Xj3D_LocationShown",TRUE);
        requestedParameters.put("Xj3D_LocationPosition","TOP");
        requestedParameters.put("Xj3D_LocationReadOnly",TRUE);
        requestedParameters.put("Xj3D_ShowConsole",TRUE);
        requestedParameters.put("Xj3D_OpenButtonShown",TRUE);
        requestedParameters.put("Xj3D_ReloadButtonShown",TRUE);
        requestedParameters.put("Xj3D_StatusBarShown",TRUE);
        requestedParameters.put("Xj3D_FPSShown",TRUE);
        requestedParameters.put("Xj3D_ContentDirectory","CurrentDirectory");
        requestedParameters.put("Xj3D_AntialiasingQuality","LOW");
        requestedParameters.put("Xj3D_Culling_Mode", "frustum");

        System.setProperty("x3d.sai.factory.class", "org.web3d.ogl.browser.X3DOGLBrowserFactoryImpl");
        X3DComponent x3dComponent = BrowserFactory.createX3DComponent(requestedParameters);

        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文件放在项目文件夹中。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
当我在Netbeans中按下run按钮时,会出现以下运行时错误:

No skin defined in xj3d-skin.properties
Producing default properties.
Exception in thread "main" java.lang.NoClassDefFoundError:  org/j3d/aviatrix3d/DrawableSurface
    at org.web3d.ogl.browser.X3DOGLBrowserFactoryImpl.createComponent(X3DOGLBrowserFactoryImpl.java:249)
    at  org.web3d.x3d.sai.BrowserFactory.createX3DComponent(BrowserFactory.java:252)
    at xj3dtest.Xj3DTest.<init>(Xj3DTest.java:43)
    at xj3dtest.Xj3DTest.main(Xj3DTest.java:59)
Caused by: java.lang.ClassNotFoundException: org.j3d.aviatrix3d.DrawableSurface
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 4 more
xj3d-skin.properties中未定义蒙皮
生成默认属性。
线程“main”java.lang.NoClassDefFoundError中出现异常:org/j3d/aviatrix3d/DrawableSurface
位于org.web3d.ogl.browser.X3DOGLBrowserFactoryImpl.createComponent(X3DOGLBrowserFactoryImpl.java:249)
位于org.web3d.x3d.sai.BrowserFactory.createX3DComponent(BrowserFactory.java:252)
在xj3dtest.xj3dtest.(xj3dtest.java:43)
位于xj3dtest.xj3dtest.main(xj3dtest.java:59)
原因:java.lang.ClassNotFoundException:org.j3d.aviatrix3d.DrawableSurface
在java.net.URLClassLoader$1.run(URLClassLoader.java:366)
在java.net.URLClassLoader$1.run(URLClassLoader.java:355)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.net.URLClassLoader.findClass(URLClassLoader.java:354)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:425)
位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 4更多

您的JAR是否在类路径中-内容提供商。;C:\Users\matt\Downloads\xj3d-sai_2.0.0.jarYeah我已经把它放在虚拟机选项中了,当我运行代码时,我也遇到了同样的错误我不知道这个X3会发生什么,但它说“始终需要以下JAR:”然后是一个列表——这意味着所有的罐子都必须出现在cp上line@gpasch我已将所有罐子放在
xj3d-sai-2.0.0
文件夹中的所需列表中,这就是为什么我将
-cp放在其中的原因。;C:\Users\matt\Downloads\xj3d-sai_2.0.0.jar
因为文件夹名是xj3d-sai_2.0.0.jar,当我选中项目下的libraries选项卡时,它列出了该站点上的所有jar。