【问题标题】:Java error message when importing a package using Netbeans使用 Netbeans 导入包时出现 Java 错误消息
【发布时间】:2016-05-28 05:19:33
【问题描述】:

我正在编写一些代码,但在四个不同的行上出现错误,表明包不存在。错误在第 7 到 10 行,表示包 org.web3d.x3d.sai 不存在。我有这个项目的代码是:

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

我做这个小项目的原因是因为我需要通过一个Java项目来显示.x3d文件。我将-Xmx450M -Djava.library.path='F:\Uni\Uni work\Year Three\xj3d-code-12559-trunk\bin' 放入项目属性VM 选项中,并将所有x3d jars 放入名为Xj3D 的库中。我已经通过 Google 搜索并打开第一个链接下载了 org.web3d.x3d.sai,并将它放在我在 Netbeans 中创建的 JARS lib 文件夹中。但我仍然收到错误。

我知道我昨天问了同样的问题,但发现它的格式不正确,我觉得它没有清楚地表达我想要什么。

编辑

当我现在运行代码时,在库中获得正确的 JARS 后,是:

Exception in thread "main" java.lang.NullPointerException
at  org.web3d.x3d.sai.BrowserFactory.createX3DComponent(BrowserFactory.java:252)
at xj3dtest.Xj3DTest.<init>(Xj3DTest.java:20)
at xj3dtest.Xj3DTest.main(Xj3DTest.java:36)

【问题讨论】:

  • 你下载的jar文件中是否存在这个包?
  • 我已经下载了 jar 文件,并且我有当前的 Xj3D 代码主干文件夹和其他 jar。我不确定如何检查 jar 文件中是否存在包。
  • EDIT我查看了xj3d-sai_2.0.0.jar文件,里面有org.web3d.x3d.sai.Browser.classorg.web3d.x3d.sai.BrowserFactory.classorg.web3d.x3d.sai.X3DComponent.classorg.web3d.x3d.sai.X3DScene.class
  • 我在 netbeans 中执行了你的程序,同时将在 this link 下载的 jar 添加到库中,它在运行时给了我一个 NotSupportedException,但没有像你这样的关于包不存在的错误。
  • 谢谢,我刚刚修改了库,所以它只是一个罐子,错误已经消失了!但是我在跑步时遇到了同样的问题。

标签: java netbeans


【解决方案1】:

我认为您必须在构建路径中包含列出的所有 jar here

【讨论】:

  • 那么将这些 jar 放在我在 Netbeans 中创建的库的列表中?
  • 转到库->下载后为每个库添加 Jar/文件夹。
  • 我刚刚做到了。当我运行它时出现以下内容:Unable to find X3D browser factory implementationException in thread "main" java.lang.NullPointerException
  • NullPointerException 因为这条线而被触发x3dComponent.getImplementation(); 你正试图调用一个空对象的方法。我认为你最好开始一个新的问题线程,也许那里有更多关于 x3d 的知识渊博的人。另外,如果我有任何帮助,请将我的答案标记为已接受。
  • 所以x3dComponent.getImplementation(); 行是一个空对象?我将开始一个新的问题线程,看看其他人是否知道如何解决这最后一点!谢谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-10
相关资源
最近更新 更多