Java试图在我的包中找到第三方类,即使该类在包含的JAR中

时间:2014-07-15 02:15:01

标签: java netbeans jar nullpointerexception classnotfoundexception

我是Java和NetBeans的新手,我很难开始一个简单的项目。

我正在尝试包含我需要在NetBeans插件上工作的.jar文件。我可以使用各种尝试的方法将.jar文件成功添加到我的项目中。

  • 我通过项目属性添加了.jar文件,并将'wrapped jar'文件添加到项目中
  • 我将.jar文件添加到Projects explorer树中的“Libraries”项目

这两种方法似乎都适用于IDE。它们允许在IDE中访问所需的类,并且不会检测到语法或访问错误(等)。但是,当我构建并运行时,我会得到十页错误,例如NullPointerException和这个doozy:

java.lang.ClassNotFoundException: Will not load class org.netbeans.modules.openide.nodes.NodesRegistrationSupport arbitrarily from one of ModuleCL@2afef4c1[org.openide.nodes] and ModuleCL@2debe24[com.myproject.simplelauncherbutton] starting from SystemClassLoader[316 modules]

com.myproject.simplelauncherbutton是我自己的包。为什么NetBeans甚至会在我的程序包中查找此类?即使它正在寻找那里,怎么能在那里找到那个课,感到困惑呢?我只想使用.jar文件制作NetBeans插件以获得支持。我怎样才能使这个工作?!

1 个答案:

答案 0 :(得分:0)

在同事的帮助下解决。问题是我在项目中包含包的方式。我试图在我的项目中包含似乎不可用的包。例如,我需要使用org.openide.nodes,所以在我的类文件的顶部我写道:

import org.openide.nodes;

NetBeans会回复称它无法找到此软件包。当我发现一个包含org.openide.nodes的包装JAR包并在我的项目中包含它时,它产生了很长的错误,无法在此处列出。

但是,当我在项目属性中使用英文名称“Nodes API”添加模块时,一切正常。我希望我能找到一些文档或说明,以节省我为什么无法让NetBeans识别各种版本的org.openide。*我试图使用。