java - Eclipse 插件 - 无法解析 Swing 类引用

标签 java eclipse plugins

(免责声明:以下情况均不正确:(1) Java 是我的强项,并且 (2) 我是插件开发专家。)

我的 Eclipse 插件项目包含 5 个插件。其中2个编译得很好。 3 个不包含对 org.eclipse.swt.widgets 或 org.eclipse.swt.graphics 包中的类的依赖项。 (极其烦人的)编译时错误消息是:

The type org.eclipse.swt.widgets.Control cannot be resolved. 
It is indirectly referenced from required .class files.

现在,我已经仔细梳理了这个工作区。我已经检查并重新检查了以下内容:

  • 类路径。查看! (适当的 JRE 和 JDK 位于 Windows 路径中。)
  • 依赖关系。查看! (包括所有库。)
  • 构建路径。查看! (使用正确的 JRE,导入所有必需的库,构建顺序正确。)
  • 进口。查看! (是的。正确的库已导入,如对话框中所示。)
  • list .MF。查看! (仔细检查 list 文件以确保路径正确。所有三个项目都从同一 JRE 引用同一文件。)
  • 插件.XML。查看! (是的,文件没问题。)
  • .ClassPath 文件。查看! (这里也没有问题。类路径文件都很好。)
  • build.properties 文件。查看! (这也不足为奇。)

我用谷歌搜索和堆栈溢出,直到我的眼睛流血。所有典型的建议似乎都没有帮助。

但是我确信,通常的事实将在这里得到证明。 (在所有条件相同的情况下,答案通常是简单、愚蠢且显而易见的痛苦。)

有人可以推荐一些我还没看过的东西吗?我非常愿意提供您可能需要的任何信息。

附注我可能会注意到,有太多地方需要寻找配置插件依赖项的地方?很棒的穆格利。

最佳答案

您的目标平台与您环境中可用的 swt 插件之间存在脱节。

  • 在 Eclipse 中,转到“帮助”->“首选项”->“目标平台”。
  • 选择您的目标平台并点击[编辑...]。
  • 在对话框中,选择“环境”选项卡。

“目标环境”中的字段将用于加载您的 swt 插件。任何未填写的字段将默认为针对当前环境检测到的值。

就您而言,您有一个 win32.x86 swt jar。如果您在 64 位 Windows 上运行,并且 Architecture 字段为空,则您的 32 位 swt jar 将不会加载。您有两种选择来修复任何差异:

  1. 安装 Eclipse 平台包。它将包含所有平台的所有 swt jar。
  2. 使“目标环境”字段与您可用的 swt jar 相匹配。

关于java - Eclipse 插件 - 无法解析 Swing 类引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11091182/

相关文章:

java - 如何用Java计算某人的年龄?

java - 是否可以使用 php 或 java 获取硬盘大小?

java - System.console() 返回 null

java - JPanel 中的无限循环

java - 单元测试仅在使用 Ant 任务运行时失败

javascript - PhoneGap 3.0.0 : Unable To Instantiate Camera Plugin Object

java - 在 WHERE 子句中使用 ROW_NUMBER

java - org.eclipse.jdt.annotation.NonNull 类型无法解析。它是从所需的 .class 文件中间接引用的

java - 导出特定 java 版本的可部署功能

python - 标签中的 QGIS-Python 图标