【问题标题】:GGTS Groovy:Can't have an abstract method in a non-abstract class in DslBuilderGGTS Groovy:在 DslBuilder 的非抽象类中不能有抽象方法
【发布时间】:2014-07-05 22:43:54
【问题描述】:

我从命令行创建了一个项目并且有八个错误。我以前在 Eclipse 中这样做过,遇到了这个错误,所以我想我会从外面尝试一下,以确保我没有做一些奇怪的事情。无论如何,除了创建它之外,绝对没有对项目做任何事情。从命令行项目构建和运行正常,并不是说有什么要测试的。

Environment:
Linux Mint 17
java version "1.8.0_05" 64-bit
Groovy Version: 2.3.3
Grails version: 2.4.1

我已经安装了安装在 Kepler 中的 2.3 编译器功能。安装了 java 8 库,尽管编译器级别设置为 7。Grails 版本如上。 Groovy 编译器同样设置为 2.3。

搜索未能找到可能的原因。我确实发现最初导入后java编译器级别设置为1.4,但更正了。接下来我应该看什么?

【问题讨论】:

  • 您是否安装了 Groovy JDT Core Patch for Java 8?
  • 版本为2.9.0.xx-201406271927-e43。这与编译器和 groovy-eclipse 功能的版本相同。而且,为了验证,我再次尝试为 Kepler 安装 GGTS。弹出一条消息,指出没有要更新的内容。看来我去这里很好。
  • 我认为你不适合,因为这个版本的 Greclipse (2.9.0.xx-201406271927-e43) 不支持 Java 8。您需要具有 e43 的 JDT 补丁(限定符以 'e43-j8' 结尾)或基于 Eclipse 4.4 的东西。您收到的错误可能是因为 JDT 编译器不理解 Java 8 默认方法。

标签: java eclipse grails groovy spring-tool-suite


【解决方案1】:

尝试使用支持 Java 8 的 GGTS / Greclipse 版本。如果您想要良好的 Java 8 支持,我建议您使用基于 Eclipse 4.4 的 GGTS 3.6.0。

您遇到的错误很可能与 Java 编译器不了解接口中的默认方法有关(这是 Java 8 的一项功能)。

GGTS 3.6.0 即将发布,但在那之前您可以从这里获得快照: http://dist.springsource.com/snapshot/STS/nightly-distributions.html

【讨论】:

  • 我试图避免安装 Eclipse 的痛苦。当然,没有那么痛苦,但是按照我喜欢的方式配置所有东西确实需要时间。所以,我要安装 Luna 然后获取最新的 GGTS 插件。这样做后我会更新。
  • 另一种选择是坚持使用 JDK 7。
  • 再次阅读您的问题:“虽然编译器级别设置为 7,但已安装 java 8 库”。这实际上可能是问题所在。 Java 7 编译器无法理解 Java 8 库接口中实际实现的某些“默认方法”。所以就像抱怨它们是抽象的。
  • 我无法让 Kepler 识别 Java 8。我按照wiki.eclipse.org/JDT/Eclipse_Java_8_Support_For_Kepler 的说明应用补丁。但是,它未能安装 JDT 补丁。所以,正如我上面所说,我要去 Luna。
  • 回到 1.7 不是解决方案,imo。
猜你喜欢
  • 1970-01-01
  • 2012-09-21
  • 2012-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-05
  • 1970-01-01
相关资源
最近更新 更多