GGTS(Eclipse)和JAVA 1.8中不兼容的JVM
由于升级到Java 1.8,在GGTS(日食)中运行grails应用程序时遇到了一些问题。
堆栈开始于:
Mar 05, 2015 3:51:31 PM org.springsource.loaded.jvm.JVM copyMethodSEVERE: Problems copying method. Incompatible JVM?
java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor91.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.springsource.loaded.jvm.JVM.copyMethod(JVM.java:134)
at org.springsource.loaded.ri.OriginalClassInvoker.createJavaMethod(OriginalClassInvoker.java:68)
at org.springsource.loaded.ri.ReflectiveInterceptor.jlClassGetDeclaredMethods(ReflectiveInterceptor.java:151)
at org.codehaus.groovy.reflection.CachedClass$3$1.run(CachedClass.java:84)
at java.security.AccessController.doPrivileged(Native Method)
at org.codehaus.groovy.reflection.CachedClass$3.initValue(CachedClass.java:81)
...
at java.lang.reflect.Method.invoke(Method.java:497)
at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1270)
at org.codehaus.groovy.grails.cli.support.GrailsStarter.rootLoader(GrailsStarter.java:236)
at org.codehaus.groovy.grails.cli.support.GrailsStarter.main(GrailsStarter.java:264)
Caused by: java.lang.IllegalArgumentException: Can not copy a non-root Method
at java.lang.reflect.Method.copy(Method.java:151)
... 280 more
我曾经在Java 1.7中运行相同的应用程序。我的同事升级到1.8,并且不再能够运行它。
我已经使用SUN JDK进行了测试,现在又使用了OpenJDK,这对当前的JDK *
JAVA_HOME,JAVA_PATH和任何其他变量似乎都指向正确的JDK安装。我已经删除了所有以前的版本(从操作系统中删除了JDK
1.6和1.7,以确保没有对它们的引用)。
由于某种原因,GGTS仍然抱怨JVM错误。我知道该错误可能与试图在1.8中编译文件的1.7编译器有关,但是我不确定此引用来自eclipse中的哪个地方。
我的Eclipse安装信息在Java下列出了以下内容:
-vm/usr/lib64/jvm/jre-1.8.0-openjdk/bin/java
eclipse.home.location=file:/home/arb/dev/applications/ggts-3.6.3.SR1/
eclipse.launcher=/home/arb/dev/applications/ggts-3.6.3.SR1/GGTS
eclipse.launcher.name=GGTS
eclipse.p2.data.area=@config.dir/../p2
eclipse.p2.profile=DefaultProfile
eclipse.product=org.springsource.ggts.ide
eclipse.startTime=1425566898624
eclipse.stateSaveDelayInterval=30000
eclipse.vm=/usr/lib64/jvm/jre-1.8.0-openjdk/bin/java
eclipse.vmargs=-Dgrails.console.enable.interactive=false
-Dgrails.console.enable.terminal=false
-Djline.terminal=jline.UnsupportedTerminal
-Dgrails.console.class=grails.build.logging.GrailsEclipseConsole
-Dosgi.requiredJavaVersion=1.6
-Xms60m
-Xmx1024m
回答:
这是与jdk8u40有关的问题,请回到jdku31。它适用于该版本。我在Windows和Linux环境中都遇到相同的问题。
以上是 GGTS(Eclipse)和JAVA 1.8中不兼容的JVM 的全部内容, 来源链接: utcz.com/qa/431660.html