【问题标题】:Cannot build Grails app in Eclipse with Java 1.8无法使用 Java 1.8 在 Eclipse 中构建 Grails 应用程序
【发布时间】:2018-06-20 21:52:42
【问题描述】:

我继承了一个 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 的新手,是否有可能是项目中的某些配置导致了问题?

【问题讨论】:

标签: eclipse grails


【解决方案1】:

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

参考号GRAILS-11063

【讨论】:

    猜你喜欢
    • 2021-11-23
    • 1970-01-01
    • 2016-04-12
    • 1970-01-01
    • 1970-01-01
    • 2015-03-28
    • 2012-02-20
    • 1970-01-01
    相关资源
    最近更新 更多