eclipse - 无法使用 Java 1.8 在 Eclipse 中构建 Grails 应用程序

标签 eclipse grails

我继承了一个 Grails 项目,并尝试使用 Java 1.8 在 Eclipse 中构建它。我可以使用 Java 1.7 成功构建一个 war 文件,但是当我切换到 1.8 并重建时,出现以下错误:

OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
| Error java.lang.reflect.InvocationTargetException
| Error     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| Error     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
| Error     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
| Error     at java.lang.reflect.Method.invoke(Method.java:483)
| Error     at org.codehaus.groovy.grails.cli.support.GrailsStarter.rootLoader(GrailsStarter.java:234)
| Error     at org.codehaus.groovy.grails.cli.support.GrailsStarter.main(GrailsStarter.java:262)
| Error Caused by: java.lang.NoClassDefFoundError: [Ljava/util/HashMap$Entry;
| Error     at java.lang.Class.getDeclaredMethods0(Native Method)
| Error     at java.lang.Class.privateGetDeclaredMethods(Class.java:2693)
| Error     at java.lang.Class.getDeclaredMethods(Class.java:1967)
| Error     at org.codehaus.groovy.reflection.CachedClass$3$1.run(CachedClass.java:84)
| Error     at java.security.AccessController.doPrivileged(Native Method)
| Error     at org.codehaus.groovy.reflection.CachedClass$3.initValue(CachedClass.java:81)
| Error     at org.codehaus.groovy.reflection.CachedClass$3.initValue(CachedClass.java:79)
| Error     at org.codehaus.groovy.util.LazyReference.getLocked(LazyReference.java:46)
| Error     at org.codehaus.groovy.util.LazyReference.get(LazyReference.java:33)
| Error     at org.codehaus.groovy.reflection.CachedClass.getMethods(CachedClass.java:250)
| Error     at groovy.lang.MetaClassImpl.populateMethods(MetaClassImpl.java:334)
| Error     at groovy.lang.MetaClassImpl.fillMethodIndex(MetaClassImpl.java:284)
| Error     at groovy.lang.MetaClassImpl.initialize(MetaClassImpl.java:2928)
| Error     at groovy.lang.ExpandoMetaClass.initialize(ExpandoMetaClass.java:483)
| Error     at org.codehaus.groovy.reflection.ClassInfo.getMetaClassUnderLock(ClassInfo.java:166)
| Error     at org.codehaus.groovy.reflection.ClassInfo.getMetaClass(ClassInfo.java:182)
| Error     at groovy.util.ConfigObject.$getStaticMetaClass(ConfigObject.groovy)
| Error     at groovy.util.ConfigObject.<init>(ConfigObject.groovy)
| Error     at grails.util.AbstractBuildSettings.<init>(AbstractBuildSettings.java:33)
| Error     at grails.util.BuildSettings.<init>(BuildSettings.groovy)
| Error     at grails.util.BuildSettings.<init>(BuildSettings.groovy:749)
| Error     at org.codehaus.groovy.grails.cli.GrailsScriptRunner.main(GrailsScriptRunner.java:164)
| Error     ... 6 more
| Error Caused by: java.lang.ClassNotFoundException: java.util.HashMap$Entry
| Error     at org.codehaus.groovy.tools.RootLoader.findClass(RootLoader.java:156)
| Error     at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
| Error     at org.codehaus.groovy.tools.RootLoader.loadClass(RootLoader.java:128)
| Error     at org.codehaus.groovy.grails.cli.support.GrailsRootLoader.loadClass(GrailsRootLoader.java:48)
| Error     at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
| Error     ... 28 more

我已经尝试按照其他帖子的建议降级到 java 1.8 u31 甚至 u25,但我仍然遇到相同的错误。我也在 Windows 和 Linux 中尝试过 – 同样的错误。

我使用的是 grails 版本 2.1.2,这可能有什么关系吗?

我是 grails 的新手,是否可能项目中的某些配置导致了问题?

最佳答案

因为Grails v2.1.2不支持java8。从 2.4.x 开始提供 Java8 支持。

引用号# GRAILS-11063

关于eclipse - 无法使用 Java 1.8 在 Eclipse 中构建 Grails 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30605055/

相关文章:

java - Eclipse - 查看一个类的哪些方法在另一个类中使用?

java - Eclipse,在库中定义的开放声明

Grails 3.3.2 - gradlew bootRun 有效,但 grails run-app 和 grails-compile 无效

java - 我如何删除没有belongs的grails中有很多关系

grails - 从其父级访问grails的动态包含 View 的zkui composer实例

Grails Spring Security 使用 https 重定向到登录页面

java - 服务器启动期间在 Tomcat、Spring、Maven 和 Eclipse 上使用 wicket 的 ClassNotFoundException

Java:尝试使用错误类型作为映射键时出现编译器或 Eclipse 警告

eclipse - Eclipse Juno 的 JSP 编辑器

grails - grails 中的字符串 ID - 到底是如何做到的?