【问题标题】:JAVA NoClassDefFoundError issueJAVA NoClassDefFoundError 问题
【发布时间】:2018-03-06 12:46:49
【问题描述】:

我是 Java 新手,正在尝试使用 SWT 和 JFace 创建 GUI 项目。我想尝试创建首选项页面,所以我用谷歌搜索并得到了一些现成的代码。我正在尝试来自here 的那个。我创建了类(使用正确的名称)并将所需的 jar 放入插件依赖项中。 (使用 Eclipse 氧气)

  1. org.eclipse.swt_3.106.1
  2. org.eclipse.core.commands_3.9.0
  3. org.eclipse.jface_3.13.1

所以在运行时我收到一个错误提示:

'线程“主”java.lang.NoClassDefFoundError 中的异常:org/eclipse/core/runtime/Assert'。 引起:java.lang.ClassNotFoundException: org.eclipse.core.runtime.Assert

考虑到在运行时找不到插件,我也在这里添加了它们

窗口 > 首选项 > Java > 构建路径 > 类路径变量。

但问题仍然存在。我在这里错过了什么/做错了什么?

【问题讨论】:

    标签: java eclipse user-interface swt


    【解决方案1】:

    org.eclipse.core.commands 只能在 Eclipse 插件中使用,它不适用于普通的 Java 应用程序。

    JFace 对首选项页面有一些基本支持,但您发现的大多数代码将使用仅在 Eclipse 插件中运行的首选项页面的扩展版本。

    在查找代码时,您需要区分只使用 SWT+JFace 的东西和使用其他 Eclipse 插件并且只能作为插件运行的东西。如果您想使用所有需要编写 Eclipse RCP 而不是普通 Java 应用程序的东西。

    【讨论】:

    • 嗨,格雷格,正如我所说,我是 Java 新手,所以您可能想详细说明一下。我知道您建议创建一个插件项目,因为首选项仅适用于此。但是作为 Java 新手,我将相同的代码复制粘贴到插件项目中,并希望它能正常工作!当然,它没有。能否请您提供更多详细信息?
    • 这对于 Stack Overflow 的答案来说太宽泛了。要使用 Eclipse 插件代码,您必须将整个应用程序编写为插件 - 可能是 RCP(富客户端产品)。因此,如果您只想要一个普通的 Java 应用程序,则不能使用插件代码。
    • 好的,我尝试使用首选项页面作为模板创建一个示例插件项目。它还附带了一个示例首选项页面,该页面有助于现有页面。显然,它起作用了,现在我将尝试将我的偏好编辑器集成到其中。谢谢。
    猜你喜欢
    • 2013-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-18
    • 2020-04-28
    相关资源
    最近更新 更多