使用Java 1.8无法在Eclipse中构建Grails应用程序 [英] Cannot build Grails app in Eclipse with Java 1.8

查看:309
本文介绍了使用Java 1.8无法在Eclipse中构建Grails应用程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

  OpenJDK 64 -Bit Server VM警告:忽略选项MaxPermSize = 256m;支持在8.0 
|中被删除错误java.lang.reflect.InvocationTargetException
|错误在sun.reflect.NativeMethodAccessorImpl.invoke0(本地方法)
|错误在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|错误在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
| java.lang.reflect.Method.invoke(Method.java:483)
|错误org.codehaus.groovy.grails.cli.support.GrailsS​​tarter.rootLoader(GrailsS​​tarter.java:234)错误
| org.codehaus.groovy.grails.cli.support.GrailsS​​tarter.main(GrailsS​​tarter.java:262)出现错误
|错误:java.lang.NoClassDefFoundError:[Ljava / util / HashMap $ Entry;
| java.lang.Class.getDeclaredMethods0错误(本地方法)
| java.lang.Class.privateGetDeclaredMethods(Class.java:2693)
| java.lang.Class.getDeclaredMethods(Class.java:1967)
|处出错org.codehaus.groovy.reflection.CachedClass出错$ 3 $ 1.run(CachedClass.java:84)
| java.security.AccessController.doPrivileged(Native Method)
|时出错org.codehaus.groovy.reflection.CachedClass $ 3.initValue(CachedClass.java:81)
| org.codehaus.groovy.reflection.CachedClass $ 3.initValue(CachedClass.java:79)
| org.codehaus.groovy.util.LazyReference.getLocked(LazyReference.java:46)
| org.codehaus.groovy.util.LazyReference.get(LazyReference.java:33)
| org.codehaus.groovy.reflection.CachedClass.getMethods(CachedClass.java:250)
|错误在groovy.lang.MetaClassImpl.populateMethods(MetaClassImpl.java:334)
|错误在groovy.lang.MetaClassImpl.fillMethodIndex(MetaClassImpl.java:284)
|错误在groovy.lang.MetaClassImpl.initialize(MetaClassImpl.java:2928)
|错误在groovy.lang.ExpandoMetaClass.initialize(ExpandoMetaClass.java:483)
| org.codehaus.groovy.reflection.ClassInfo.getMetaClassUnderLock(ClassInfo.java:166)出现错误
| org.codehaus.groovy.reflection.ClassInfo.getMetaClass(ClassInfo.java:182)
|错误在groovy.util.ConfigObject。$ getStaticMetaClass(ConfigObject.groovy)
|错误在groovy.util.ConfigObject。< init>(ConfigObject.groovy)
|错误在grails.util.AbstractBuildSettings。< init>(AbstractBuildSettings.java:33)
|在grails.util.BuildSettings时出错。< init>(BuildSettings.groovy)
| < init>(BuildSettings.groovy:749)
|错误在grails.util.BuildSettings。 org.codehaus.groovy.grails.cli.GrailsS​​criptRunner.main错误(GrailsS​​criptRunner.java:164)
|错误... 6 more
|错误:java.lang.ClassNotFoundException:java.util.HashMap $ Entry
| org.codehaus.groovy.tools.RootLoader.findClass(RootLoader.java:156)
| java.lang.ClassLoader.loadClass错误(ClassLoader.java:424)
| org.codehaus.groovy.tools.RootLoader.loadClass(RootLoader.java:128)
| org.codehaus.groovy.grails.cli.support.GrailsRootLoader.loadClass(GrailsRootLoader.java:48)
| java.lang.ClassLoader.loadClass错误(ClassLoader.java:357)
|错误... 28更多

我试过降级到Java 1.8 u31甚至u25其他帖子,但我仍然得到同样的错误。我也尝试在Windows& Linux - 同样的错误。

我使用的是grails 2.1.2版本,可能与它有关系吗?



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

解决方案

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



Ref# GRAILS-11063


I've inherited a Grails project and am trying to build it in eclipse with Java 1.8. I can successfully build a war file with Java 1.7 but when I switch to 1.8 and rebuild I get the following error:

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

I've tried downgrading to java 1.8 u31 and even u25 as suggested by other posts, but I still get the same error. I've also tried in Windows & Linux – same error.

I'm using grails version 2.1.2, could that have something to do with it?

I'm brand new to grails, is it possible there is some config in the project that is causing the problem?

解决方案

Because Grails v2.1.2 does not support java8. Java8 support is available from 2.4.x onwards.

Ref# GRAILS-11063

这篇关于使用Java 1.8无法在Eclipse中构建Grails应用程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆