【问题标题】:NoClassDefFoundError when trying to run JAR which uses Absolute Layout尝试运行使用绝对布局的 JAR 时出现 NoClassDefFoundError
【发布时间】:2014-10-24 12:20:02
【问题描述】:

我使用 NetBeans 表单编辑器为我的程序开发了一个 swing GUI。我使用了 AbsoluteLayout,以便我可以单击并将组件拖动到框架上需要它们的任何位置。问题是当我尝试运行我为程序制作的可执行 JAR 文件时,我收到以下错误:

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

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

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

【问题讨论】:

    标签: java layout netbeans jar noclassdeffounderror


    【解决方案1】:

    尝试将 AbsoluteLayout jar 文件添加为库并从该库中导入 AbsoluteLayout。您可以从here 获取罐子。

    【讨论】:

    • 我已经设置了Library并使用import语句import org.netbeans.lib.awtextra.AbsoluteLayout;在所有课程中,但我仍然遇到问题。此外,当我创建 JAR 文件时,NetBeans (AbsolutLayout.jar) 在“lib”文件夹中创建了另一个 JAR 文件。我做错了什么?
    【解决方案2】:

    我已经解决了这个问题。

    我没有意识到 AbsoluteLayout 类是 NetBeans 独有的——我想我认为它是一个内置的 swing 布局管理器。我将 AbsolutLayout 类添加到我的 JAR 中,一切正常。

    【讨论】:

      【解决方案3】:

      我认为这是类路径的问题。

      您的可执行 JAR 文件应包含一个清单文件(请参阅 META-INF 文件夹)。
      在此清单文件中,列出了所有需要的库(包括此库的路径!)

      检查您的 JAR 清单文件并检查库(在您的情况下为 AbsoluteLayout.jar)是否真的
      在指定的位置。

      示例:
      当您的 JAR 在文件夹中时:C:/Test/App.jar 并且您的清单看起来像
      ...
      类路径:libs/AbsoluteLayout.jar
      ...

      那么此文件必须存在于此处:C:/Test/libs/AbsoluteLayout.jar

      PS:对于 WebStart-Applications 来说,使用多个罐子“不是”问题! 在 JNLP 文件中,还必须指定 AbsoluteLayout.JAR!

      【讨论】:

        猜你喜欢
        • 2023-03-08
        • 2013-05-19
        • 2021-09-28
        • 1970-01-01
        • 2010-11-28
        • 1970-01-01
        • 2017-08-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多