problemas de instalación de Maven: JAVA_HOME debe apuntar a un JDK no JRE?

Allyson Park:

Una palabra de advertencia: Estoy súper nuevo a CS y muy familiarizados con UNIX / Bash vocabulario. Esto también es mi primer post en StackOverflow manera hola mundo, lo siento si no estoy siguiendo la convención y por favor, hágamelo saber si es así! Actualmente estoy tratando de instalar Maven, y cometió algunos errores de copia pegar instrucciones de instalación de edad (con números de versión incorrecta) y ahora todo el proceso es tan mal estado. La primera vez que traté de seguir las instrucciones dadas en el sitio web, que no funcionaron, entonces intenté otros pocos, y ahora estoy preocupado de que me quedo con un lío siguiendo diferentes conjuntos de instrucciones.

He llegado a un punto en el que si escribo en el mvn -versionrecibo el siguiente: The JAVA_HOME environment variable is not defined correctly This environment variable is needed to run this program NB: JAVA_HOME should point to a JDK not a JREOriginalmente, mi JAVA_HOME se establece en JDK-install-dir, que todavía me dio el mensaje de error anterior. He intentado volver a descargar el JDK (versión 13.0.1) de Oracle, que arrastré a mi archivo de directorio principal, y abrió la cremallera. Entonces me puse mi JAVA_HOME a ese archivo descomprimido, JDK-13.0.1.jdk y actualizado mi variable PATH. Después de todo esto, todavía estoy recibiendo este mismo mensaje de error, y no estoy seguro de qué hacer.

Para la referencia, he aquí lo que algunas variables de entorno correspondientes se establecen en (No he incluido información irrelevante desde PATH):

~ echo $JAVA_HOME
jdk-13.0.1.jdk
~ echo $PATH
/usr/local/apache-maven/apache-maven-3.6.3/bin:/opt/apache-maven-3.6.3/bin:jdk-install-dir/bin:/usr/local/apache-maven/apache-maven-3.3.9/bin:/opt/apache-maven-3.6.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/allyson/apache-maven-3.6.3/bin:/Users/allyson/apache-maven-3.6.3/bin:jdk-12.0.1.jdk/bin:/Users/allyson/apache-maven-3.6.3/bin:JDK-13.0.1.jdk/bin 
~ echo $M2
/usr/local/apache-maven/apache-maven-3.6.3/bin
~ echo $M2_HOME
/Users/allyson/apache-maven-3.6.3

Una cosa que tengo curiosidad por saber: para las variables M2 y M2_HOME, se supone que debe ser que uno está en mi directorio personal (/ Users / Allyson) y uno es para / usr / local ????

Lo siento si esto es mucho, sólo quería proporcionar información a fondo!

Ian McLaird:

OK, tomar una respiración profunda, y vamos a caminar a través de este. Cada una de estas variables de entorno tiene un propósito, y una vez que entienda lo que esos efectos son, esto hace mucho más sentido. Mezcla tutoriales no es necesariamente un problema, pero usted quiere entender lo que está haciendo, en lugar de copiar ciegamente los valores de la Internet.

  1. JAVA_HOMEestá destinado a identificar al entorno del sistema dónde encontrar un entorno de ejecución de Java. Tiene que ser ajustado a la ruta completa de donde se ha instalado el JDK. En las ventanas, esto podría ser C:\Program Files\Java\jdk-13.0.1. En un sistema Linux, usted tiene un poco más de flexibilidad. Los lugares comunes podrían ser /opt/java/jdk-13.0.1o /usr/local/java/jdk-13.0.1. Si ha instalado el JDK otro lugar, entonces es necesario utilizar ese camino en su lugar. El mensaje NB: JAVA_HOME should point to a JDK not a JREse refiere a un error común al instalar Maven - experto requiere un JDK, no un JRE llanura. Este error es tan común que cada vez JAVA_HOMEapunta a una carpeta que no es un JDK, imprime esta advertencia (incluso si la carpeta en cuestión no es en realidad un JRE ).
  2. M2_HOMEse supone que se establece en la ruta completa donde está instalado Maven (es decir, el lugar donde ha descomprimido él). Esto más o menos ayuda a maven "encontrarse" si debe necesitar por cualquier razón. En sentido estricto, éste no es necesario. (No se establece en mi sistema, y Maven funciona bien para mí). Es sobre todo una mayor comodidad para el establecimiento de la siguiente variable de entorno.
  3. M2es la ruta completa a la carpeta donde está el ejecutable es experta. Esto casi siempre ser $M2_HOME/bin, pero ciertamente es posible hacer cosas extrañas, y esto le permitirá trabajar en torno a esas situaciones. Obviamente, esto no funcionará si no se ha especificado $M2_HOME. Éste no es estrictamente necesario, ya sea, y es sobre todo una forma conveniente de crear la siguiente.
  4. PATHes donde su apariencia de sistemas Linux para encontrar programas para ejecutarse cuando se escribe su nombre en la línea de comandos. Para facilitar su uso, tendrá que asegurarse de que los archivos ejecutables de Maven y java se incluyen en algún lugar de la :lista delimitada. La mayoría de las distribuciones de Linux ya tienen un valor predeterminado PATHestablecido para usted en un archivo de recurso concha de algún tipo. Usted querrá hacer referencia a la documentación para ver cómo agregar otra entrada a la ruta, pero un lenguaje común sería PATH=$PATH:$M2(lo que añadir el valor de $M2que el valor de $PATHy luego almacenar el resultado en la espalda PATH. Si no configuró arriba $M2o $M2_HOME, tendrá que hacer algo más.

Así, TL; DR, si ha instalado el JDK en /opt/java/jdk-13.0.1y descomprimido en Maven /opt/maven/apache-maven-3.6.3, su mínimo oso valores de trabajo son:

export JAVA_HOME=/opt/java/jdk-13.0.1
export PATH=$PATH:$JAVA_HOME/bin:/opt/maven/apache-maven-3.6.3/bin

Y si querías un juego completo

export JAVA_HOME=/opt/java/jdk-13.0.1
export M2_HOME=/opt/maven/apache-maven-3.6.3
export M2=$M2_HOME/bin
export PATH=$PATH:$JAVA_HOME/bin:$M2

Vale la pena señalar que la mayoría de entornos de desarrollo Java incluirán una interfaz gráfica de usuario para la creación de experto y Java en el IDE (Los ajustes se suelen única obra dentro de ese IDE ). A menudo es mucho más fácil para los principiantes a ponerse en marcha de esa manera.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=363440&siteId=1
Recomendado
Clasificación