gratis - JVM incompatible en GGTS(Eclipse) y JAVA 1.8
ggts download (10)
Actualicé mi jar con resorte a la versión 1.2.4.BUILD-SNAPSHOT (desde 1.2.1) y eso resolvió el problema. (La última versión se puede encontrar en el repositorio de primavera )
-
Vaya a su directorio local de Grails lib para encontrar el tarro springloaded.
Para mí eso fue
/usr/local/Cellar/grails/2.4.4/libexec/lib/org.springframework/springloaded/jars/
- eliminar los tarros 1.2.1 existentes (también eliminé el archivo pom, pero no es necesario)
-
descargue la última jarra con resorte y colóquela en el subdirectorio de
jars
:wget http://repo.spring.io/libs-snapshot-local/org/springframework/springloaded/1.2.4.BUILD-SNAPSHOT/springloaded-1.2.4.BUILD-SNAPSHOT.jar
Después de hacer eso, todo funciona. (Pistas utilizadas de la respuesta anterior: https://github.com/spring-projects/spring-loaded/issues/98 )
Tener algún problema con la ejecución de una aplicación Grails en GGTS (eclipse) debido a la actualización a Java 1.8.
La pila comienza con:
Mar 05, 2015 3:51:31 PM org.springsource.loaded.jvm.JVM copyMethod
SEVERE: 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
Solía ejecutar la misma aplicación en Java 1.7. Mis colegas actualizaron a 1.8 y ya no pueden ejecutarlo.
Probé con SUN JDK y ahora estoy en OpenJDK nuevamente y eso no ayuda a la versión actual de OpenDJDK JDK "1.8.0_40"
JAVA_HOME, JAVA_PATH y cualquier otra variable parece apuntar a la instalación correcta de JDK. He eliminado todo lo anterior (JDK 1.6 y 1.7 del sistema operativo para asegurarme de que no hay referencia a ellos).
Por alguna razón, GGTS todavía se queja por una JVM incorrecta. Entiendo que el error podría estar relacionado con un compilador 1.7 que intenta compilar archivos en el 1.8, pero no estoy seguro de dónde proviene esta referencia en eclipse.
Mi información de instalación de Eclipse enumera lo siguiente en 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
[email protected]/../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
Cambiar la versión con resorte en mi pom.xml hizo el truco.
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
<version>1.2.6.RELEASE</version>
</dependency>
Cuando estaba experimentando el problema, mi versión con resorte era 1.2.1.
Causa raíz, soluciones alternativas y noticias sobre soluciones aquí: https://github.com/spring-projects/spring-loaded/issues/98
Desde https://github.com/spring-projects/spring-loaded/issues/98 y trabajó para mí
wget repo.spring.io/libs-snapshot-local/org/springframework/springloaded/1.2.3.BUILD-SNAPSHOT/springloaded-1.2.3.BUILD-SNAPSHOT.jar -O ~/.gvm/grails/2.4.4/lib/org.springframework/springloaded/jars/springloaded-1.2.1.RELEASE.jar
Dos pasos para hacerlo funcionar
1. Descargue la versión inferior de JDK: instale jdk1.8.0_25 desde el enlace http://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html#jdk-8u25-oth-JPR . Es la versión inferior de JDK ya que los griales no admiten versiones superiores. Tal vez incluirán esto en la última versión pronto.
2. Configure las variables de entorno: no olvide cambiar las variables ambientales para jdk, solo tiene que editar las variables de ruta y la variable de inicio de Java de "C: / Archivos de programa / Java / jdk1.8.0_''LatestVersion ''" a "C : / Archivos de programa / Java / jdk1.8.0_25 " .
Es un problema relacionado con jdk8u40, regrese a jdku31. Funciona en esa versión. Me encuentro con el mismo problema tanto en Windows como en entornos Linux.
Estoy ejecutando Grails 2.4.3 y también tuve problemas para pasar de jdk1.8.0_31 a jdk1.8.0_40 y tuve que volver a jdk1.8.0_31
Loading Grails 2.4.3
...
SEVERE: Problems copying method. Incompatible JVM?
java.lang.reflect.InvocationTargetException
...
Caused by: java.lang.IllegalArgumentException: Can not copy a non-root Method
at java.lang.reflect.Method.copy(Method.java:151)
La versión 1.8.0_40 y 1.8.0_45 tiene actualizaciones de última hora con griales. Spring no puede copiar métodos que no sean Root.
Desde la publicación inicial se ha desarrollado una solución alternativa.
aclement comentó el 5 de marzo. Aquí está la compilación: http://repo.spring.io/libs-snapshot-local/org/springframework/springloaded/1.2.2.BUILD-SNAPSHOT/springloaded-1.2.2.BUILD-SNAPSHOT.jar
Para probarlo en Grails, lo que hago es ir a la carpeta Grails: grails-2.5.0 / lib / org.springframework / springloaded / jars
Luego renombro el tarro con resorte que está allí y pongo un enlace simbólico al tarro de arriba. Solía ser que solo podías modificar el script startGrails para apuntar a la nueva versión, pero ahora debido a la bifurcación, encuentro que necesitas hacer el enlace simbólico. O suelte ese frasco en esta carpeta y cámbiele el nombre para que coincida con las expectativas de los griales (cámbiele el nombre de springloaded-1.2.2.BUILD-SNAPSHOT.jar a springloaded-1.2.0.RELEASE.jar)
Si quieres retroceder en su lugar
Grails es compatible de forma nativa en 1.8.0_25, 1.8.0_31
Una vez que tenga una versión Java compatible, limpie su proyecto Grails. Asegúrese de que sus variables de ruta de Java estén configuradas para apuntar a su versión esperada.
set JAVA_HOME=C:/java/jdk1.8.0_25
set PATH=%JAVA_HOME%/bin;%PATH%;
Paso 1: descarga este http://repo.spring.io/libs-snapshot-local/org/springframework/springloaded/1.2.2.BUILD-SNAPSHOT/springloaded-1.2.2.BUILD-SNAPSHOT.jar
Paso 2: colóquelo en la carpeta Grails: grails-2.4.1 / lib / org.springframework / springloaded / jars
debería ser suficiente, reinicie IDE
Pensé que debería agregar mis dos peniques en este tema. Recientemente me encontré con el mismo problema al tratar de actualizar una aplicación antigua a 2.4.4. La razón de mi publicación es porque todas las instrucciones anteriores están un poco desactualizadas y, en la mayoría de los casos, puede parecer que funcionan. En el momento en que introduce los controladores mysql, todas las versiones mencionadas anteriormente de spring loaded encontraron un nuevo problema relacionado con la incompatibilidad y el no root al intentar activar la base de datos.
Tengo ggts trabajando completamente con JDK 1.8_065.
Para que funcione, obtenga
springloaded-1.2.5.RELEASE.jar
Ponga esto en
grails-2.4.4/lib/org.springframework/springloaded/jars/
folder.
Cuando instala ggts dentro de la carpeta ggts-bundle es grails-2.4.4.
Por lo tanto, coloque el archivo en la ubicación anterior dentro de la carpeta ggts-bundle.
A menos que haya cambiado la configuración.
Relanzar GGTS. Pasé mucho tiempo en él y pensé que debería actualizar las instrucciones.
También la otra cosa con la que me encontré fue bifurcar bajo Grails 2.4.4 con mi actualización y terminé configurando
grails.project.fork = []
En mi BuildConfig.groovy