(免责声明:以下情况均不正确:(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 将不会加载。您有两种选择来修复任何差异:
- 安装 Eclipse 平台包。它将包含所有平台的所有 swt jar。
- 使“目标环境”字段与您可用的 swt jar 相匹配。
关于java - Eclipse 插件 - 无法解析 Swing 类引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11091182/