将 AspectJ 开发工具安装到 Eclipse 中后,“运行”按钮和 Ctrl-F11 快捷方式都变得几乎无用:使用它们(或“调试”按钮)将抛出“编辑器不包含主类型”错误消息,即使对于不需要主类型存在的项目(例如,Android 应用程序项目)。具有正确定义的主类型的独立 Java 项目工作正常 - 所以似乎 AJDT 正在强制 Eclipse 检查 Java main() 而不首先检查项目类型。该项目是否是 AspectJ 项目也没有区别。
仅当您当前正在编辑的文件在其文件名中的任何位置包含“.java”、“.aj”或“.class”时才会出现问题(注意:它实际上不必以这些扩展名结尾,只要它是那里的任何地方 - readme.txt 都可以,readme.java.txt 不会)。
我发现解决这个问题的两种方法 - 无论它是否是 AJ 项目 - 在安装 AJDT 之后是:
在 Package Explorer 中选择项目中名称不包含 .java、.class 或 .aj 的文件,然后点击 Run(Package Explorer 必须保持活动并被选中)。
为您的项目创建一个新的运行配置,并使用它来启动您的项目。这仍然增加了一个毫无意义的额外步骤,并且对于那些处理大量项目的人来说是不切实际的。
我在 Eclipse Juno 和 Helios(Windows XP x86 和 Win7 x64)上都试过这个,结果是一样的。虽然看起来像是在吹毛求疵,但它肯定不是:AJDT 正在劫持IDE最常用的功能。
我已经在我的工作 PC 上安装了两个不同的 Eclipse,它们有自己独立的工作区,一个安装了 AJDT,一个没有,所以当我不处理任何与 AJ 相关的事情时,我可以正确使用 IDE。由于我的公司正在开发一个需要其他开发人员将 AJDT 安装到他们的 IDE 中的项目,这对我们来说是一个重大问题,超出了我们自己的时间损失——我无法想象很多开发人员愿意投入完全没有理由将一个重大瓶颈添加到他们的工作流程中。因此,他们很可能会放弃我们的产品!
更新:这已被确定为 AspectJ 内部的错误,并已报告给 AJ 开发团队。您可以在此处跟踪它:https ://bugs.eclipse.org/bugs/show_bug.cgi?id=399660 在撰写本文时,该错误已部分修复,将运行功能恢复到未启用 AJ 的项目.