2014-08-30 57 views
1

我为使用NetBeans表单编辑器的程序开发了一个摆动GUI。我使用了AbsoluteLayout,以便我可以单击并拖动组件到任何需要它们去框架的地方。问题是,当我尝试运行我为程序制作的可执行JAR文件时,出现以下错误:JAR不适用于绝对布局

java.lang.NoClassDefFoundError:org/netbeans/lib/awtextra/AbsoluteLayout ...异常在线程“main”中

所有的GUI代码都是由NetBeans为我编写的,所以我不确定这里存在什么问题。

我真的很喜欢使用表单编辑器,因为让GUI看起来像我希望他们在我自己尝试对其进行硬编码时非常乏味。该程序需要用于JavaWebStart,因此它必须位于可执行的可执行JAR文件中。

我非常感谢任何关于此主题的帮助/提示/信息。

非常感谢您的时间。

回答

4

尝试添加AbsoluteLayout jar文件作为库并从该库中导入AbsoluteLayout。你可以从here得到罐子。

+0

我已经设置了库并使用import语句import org.netbeans.lib.awtextra.AbsoluteLayout;在所有的班级,但我仍然有问题。另外,当我创建JAR文件时,另一个JAR文件由NetBeans(AbsolutLayout.jar)在“lib”文件夹中创建。我做错了什么? – Yulz 2014-08-30 19:50:20

1

它是一个类路径的问题,我假设。

您的可执行文件JAR文件应该包含一个清单文件(参见META-INF文件夹)。
在这个清单文件,所有需要的库列(包括路径该库!)

检查您的JAR文件清单文件,并检查库(在你的情况AbsoluteLayout.jar)是真正
的地方指定。

例:
当你的JAR是在文件夹:C:/Test/App.jar和你的清单看起来像
...
类路径:库/ AbsoluteLayout.jar
。 ..

那么这个文件必须在这里存在:C:/Test/libs/AbsoluteLayout.jar! PS:使用多个Jars对WebStart应用程序来说不是问题! 在JNLP文件中,还必须指定AbsoluteLayout.JAR!

2

我已经解决了这个问题。

我没有意识到AbsoluteLayout类是NetBeans独占的东西 - 我想我认为它是一个内置的摆动布局管理器。我将AbsolutLayout类添加到我的JAR中,并且一切正常。