【发布时间】:2013-01-25 18:21:32
【问题描述】:
在将 AspectJ 开发工具安装到 Eclipse 之后,“运行”按钮和 Ctrl-F11 快捷键都变得几乎无用:使用它们(或“调试”按钮)将抛出“编辑器不包含主类型”错误消息,即使对于不需要主类型存在的项目(例如,Android 应用程序项目)。具有正确定义的主类型的独立 Java 项目工作正常 - 所以似乎 AJDT 正在强制 Eclipse 检查 Java main() 而不首先检查项目类型。该项目是否是 AspectJ 项目也没有区别。
仅当您当前正在编辑的文件在其文件名中的任何位置包含“.java”、“.aj”或“.class”时才会出现问题(注意:它实际上不必以这些扩展名结尾,因为只要它在那里的任何地方 - readme.txt 都可以工作,readme.java.txt 不会)。
在安装 AJDT 之后,我发现解决此问题的两种方法(无论它是否是 AJ 项目)是:
在 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 的项目。
【问题讨论】:
-
从来没有听说过这个问题......你是说即使在java项目中,键绑定也被破坏了?值得在bugs.eclipse.org 上为此提出一个审计错误
-
键绑定没有坏,函数本身坏了。 (Ctrl-F11 和 Run 按钮都会导致错误消息。)是的,这发生在所有项目中,甚至是与 AJ 无关的简单 Java 项目。 :( 这发生在我的两个完全不同的系统上(我的工作 PC 运行 Windows XP 32 位和较新的 Eclipse Juno,我的家用 PC 运行 Windows 7 64 位和较旧的 Eclipse Helios),唯一的共同点是 AJDT(我'从未在此问题之外看到此消息)。
-
现在,我对您的问题感到困惑。请明确说明您的问题中哪些有效,哪些无效。这是否只发生在 AJ 项目或 Java 项目中?只是键绑定被破坏,还是启动应用程序的所有方式?错误日志中是否有任何错误?
-
感谢您让我澄清,这让我做了一些实验,对问题的潜在根源有所了解! :-) 我已经相应地更新了原始问题。对于纯 Java 项目,只要我定义了正确的 main(),错误就会消失,正如它应该的那样。我遇到的问题是因为我正在处理的项目类型(Android)根本不需要 main() 存在。所以问题的原因似乎是 AJDT 正在强制 Eclipse 检查 main() 而与项目类型无关。日志中没有错误,快捷键和运行按钮的工作方式相同。
标签: eclipse ide workflow aspectj ajdt