一些背景:我正试图为NetBeans 7.3.1构建一个NetBeans插件--我必须使用这个旧版本的NetBeans,因为这是为了工作,而且部门不允许我们强制升级到更新版本的NetBeans。
无论如何,我在新安装的NetBeans中启动了一个新项目。文件->New,我选择了NetBeans模块。我在这个项目中包含了一个新的操作,我按照NetBeans插件快速启动教程( Google教程这里)创建它的向导。这件事很管用。所有的东西都编译好了,插件按钮也会出现在工具栏上。
但是,为了满足我的需要,我必须包括一些外部库,特别是org.openide.windows (通过org.openide.windows.jar)等。一旦我包含了这个.jar文件,我就会得到一个NullPointerException。错误报告/堆栈跟踪如下:
java.lang.NullPointerException
at org.netbeans.core.windows.WindowSystemImpl.load(WindowSystemImpl.java:79)
at org.netbeans.core.GuiRunLevel$InitWinSys.run(GuiRunLevel.java:231)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:744)
at java.awt.EventQueue.access$400(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:697)
at java.awt.EventQueue$3.run(EventQueue.java:691)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:714)
at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
[catch] at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)我完全没有写代码。我的“代码”与从NetBeans文件->新项目开始一个新的清洁项目并选择NetBeans模块时所显示的完全相同。所以我不知道怎么会是我的密码。因为根本就没有。
我遗漏了什么?我能做些什么来修复这个问题,这样我才能编写插件呢?还是图书馆刚刚坏了?我从多个来源尝试过这个.jar库的多个版本,但似乎没有什么效果。
发布于 2014-07-16 18:47:05
在同事的帮助下解决了。我们没有将包含org.openide.windows的包装JAR包作为包装JAR添加到我的项目中,而是尝试在模块依赖项中按名称"Window System API“添加包。这个成功了。不知道为什么我们在JAR中找到的各种版本的org.openide.windows没有工作,并给NetBeans造成了如此多的混乱,但是添加模块依赖解决了所有问题。
发布于 2014-07-16 18:59:01
而不是compile time,尝试将dependency添加到runtime,以便它在编译时和运行时都可用,尝试添加如下
文件->项目属性->库->运行库。
https://stackoverflow.com/questions/24766008
复制相似问题