MVN -V me da "Asegurable Major.Minor versión 51.0" -- java campo con macos campo con maven campo con terminal camp Relacionados El problema

mvn -v gives me “Unsupported major.minor version 51.0”


0
vote

problema

Español

i Tipo ls -l4 en el terminal y me da

  ls -l5  

La versión Java que estoy usando es la Java 8 actual, Mi ls -l6 Variable está configurado en ls -l7 .

ls -l8 me da

  ls -l9  

Entonces, eso debería ser correcto, ¿verdad? ¿Alguna idea de lo que me podría perder aquí?

Editar: A medida que resulta, faltaba la línea .ssh0 en mi .ssh1 . Se corrigió gracias a la respuesta correcta a continuación.

Original en ingles

I type mvn -v into the terminal and it gives me

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/maven/cli/MavenCli : Unsupported major.minor version 51.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637) at java.lang.ClassLoader.defineClass(ClassLoader.java:621) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) at java.net.URLClassLoader.access$000(URLClassLoader.java:58) at java.net.URLClassLoader$1.run(URLClassLoader.java:197) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.java:401) at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:42) at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271) at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:254) at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239) at org.codehaus.plexus.classworlds.launcher.Launcher.getMainClass(Launcher.java:144) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:266) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 

The java version I am using is the current Java 8, my $JAVA_HOME variable is set to /Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home.

java -v gives me

java version "1.8.0_102" Java(TM) SE Runtime Environment (build 1.8.0_102-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode) 

so that should all be correct, right? Any idea what I might be missing here?

EDIT: As it turns out, the export JAVA_HOME line was missing from my .bash_profile. Fixed thanks to the correct answer below.

           
         
         

Lista de respuestas

3
 
vote
vote
La mejor respuesta
 

En primer lugar, la excepción es porque la biblioteca que se está cargando es demasiado nueva para la versión de Java en funcionamiento. La versión 51.0 es Java 7, por lo que mvn debe estar ejecutándose con Java 6 o antes. Esto no está listo para la disputa, sin importar lo que crea JAVA_HOME es.

El comando mvn es un script de shell que ejecuta el ejecutable JAVA_HOME8 JAVA. Es bastante corto y fácil de comprensible.

Puede confirmar la versión de Java en funcionamiento insertando

  echo "$JAVA_HOME" echo "$JAVACMD" "$JAVACMD" -version   

justo antes de la línea al final que comienza con

  .ssh0  

Probablemente va a la versión de Apple de Java en .ssh1111111 , casi ciertamente no tiene Java_Home configurarse completamente correctamente.

editar

De los comentarios, parece que .ssh2 piensa .ssh3 es

  .ssh4  

Esta es la ubicación de Apple JDK que se basa en Java 1.6. La forma correcta de solucionar el problema es asegurarse de que Java_Home esté configurada correctamente en el 998877766615 JAVA_HOME16 dependiendo de qué shell use.

El siguiente es mi .ssh7 con todos los bits relacionados con MVN eliminados.

  .ssh8  
 

First of all, the exception is because the library being loaded is too new for the version of Java running. Version 51.0 is Java 7, so mvn must be running with Java 6 or earlier. This is not up for dispute, no matter what you think JAVA_HOME is.

The command mvn is a shell script that executes the mvn Java executable. It's quite short and easily understandable.

You can confirm the version of Java running by inserting

echo "$JAVA_HOME" echo "$JAVACMD" "$JAVACMD" -version 

just before the line at the end that starts with

exec "$JAVACMD" .... 

It's probably going to Apple's version of java in /System/Library, you almost certainly don't have JAVA_HOME set completely correctly.

EDIT

From the comments, it seems that mvn thinks $JAVA_HOME is

/System/Library/Frameworks/JavaVM.framework/Versions/Currentxe2x80x8cxe2x80x8bJDK/Home  

This is the location of the Apple JDK which is based on Java 1.6. The correct way to fix the issue is to make sure that JAVA_HOME is set correctly in the right .profile or .bash_profile depending on which shell you use.

The following is my .profile with all non mvn related bits removed.

 JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8/Contents/Home  M2_HOME=/usr/local/maven  M2=$M2_HOME/bin  MAVEN_OPTS="-Xmx512M"  export M2_HOME M2 JAVA_HOME MAVEN_OPTS   PATH=$JAVA_HOME/bin:$HOME/bin:$PATH:$M2   EDITOR=vim   export EDITOR 
 
 
       
       
0
 
vote

¿Puede verificar si .ssh9 (En caso de Linux / Unix) o 99887776620 (en el caso de Windows) El archivo en Apache Maven Installation tiene Java_Home configurado en alguna versión antigua de java.

Es posible que esté utilizando la versión antigua de Java.

 

Can you please check if /apache-maven/bin/mvn(incase of linux/unix) or /apache-maven/bin/mvn.cmd(in case of windows) file in apache maven installation has JAVA_HOME set to some old version of Java.

Its possible that its using the old java version.

 
 

Relacionados problema

2  Subl no se abrirá en la terminal incluso con la carpeta Bin  ( Subl will not open in terminal even with bin folder ) 
No puedo abrir el texto sublime 2 de mi terminal, aunque tengo una carpeta de contenedor y dice que el archivo existe. Sigo recibiendo Bash: subl: comando no ...

2  ¿Puedo editar la salida de impresión de GCC en Linux?  ( Can i edit the print output of gcc in linux ) 
Quiero que los masajes de error se impriman en un color diferente al terminal, ¿es posible y cómo? Quiero imprimir la palabra 'error' en rojo y 'advertencia...

1  Pantalla GNU y menos: sobrescribir la salida anterior  ( Gnu screen and less overwriting previous output ) 
Estoy en el proceso de conmutación de múltiples pestañas en ITERM a una sesión de GNU screen . En ITERM, puedo ver un archivo con less y el contenido del t...

19  ¿Cómo puedo poner las pestañas en los archivos de texto del terminal? [cerrado]  ( How can i put tabs in text files from terminal ) 
cerrado. Esta pregunta es off-topic . Actualmente no está aceptando respuestas. ¿Quieres ...

5  Consigue PID de la pestaña Chrome a través de Terminal  ( Get pid of chrome tab via terminal ) 
¿Es posible obtener la PID de una pestaña específica de Google Chrome (como la actual) a través de la línea de comandos? Conseguirlo a través de AppleScript...

104  ¿Qué es un buen java, cursas, biblioteca para aplicaciones de terminales? [cerrado]  ( Whats a good java curses like library for terminal applications ) 
cerrado. Esta pregunta no cumple con pautas de desbordamiento de pila . Actualmente no está aceptando respuestas. ...

21  Linux Shell equivalente en IIS  ( Linux shell equivalent on iis ) 
Como desarrollador de lámparas, considerando mudarse a una plataforma .NET IIS, una de mis inquietudes es la pérdida de productividad debido a la falta de she...

23  ¿Cómo mostrar los fragmentos de código de terminal / cáscara en la esfinge?  ( How to show terminal shell code snippets in sphinx ) 
Usando Sphinx, sé que puede mostrar un fragmento de código al tener algo así: STARTOFDATA5 ¿Cómo puedo mostrar un fragmento de código de terminales o co...

19  ¿Cómo configuro las variables de entorno de Bash de un guión?  ( How do i set bash environment variables from a script ) 
Tengo algunas configuraciones de proxy que ocasionalmente quiero activar, por lo que no quiero ponerlas en mi ~/.bash_profile . Intenté ponerlos directamente...

2  El comando sass --watch no funciona completamente  ( Sass watch command not fully working ) 
Tengo una configuración de configuración de SASS Basic Basic, que incluye la siguiente estructura de carpetas: css style.css -modules _all.scsss _g...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos