No se proporciona comstackdor en este entorno. ¿Quizás estás ejecutando un JRE en lugar de un JDK?

Estoy comstackndo un proyecto en Eclipse usando m2eclipse. Establecí la ruta JDK en Eclipse de esta manera:

Windows-->preferences-->installed jres--> jdk1.7.xx path 

Pero esto muestra un error

 [ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- [ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? [INFO] 1 error [INFO] ------------------------------------------------------------- [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.424s [INFO] Finished at: Tue Oct 29 15:21:01 IST 2013 [INFO] Final Memory: 5M/15M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler- plugin:3.1:compile (default-compile) on project TEST-WEB: Comstacktion failure [ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? 

  1. En su Eclipse IDE, vaya a Ventana > Preferencias > Java > JRE instalados > y verifique sus JRE instalados . Debería tener una entrada con un JDK allí.
  2. Seleccione el Env de ejecución como se muestra a continuación. Click OK
  3. A continuación , haga clic con el botón derecho en su proyecto -> Maven -> Actualizar proyecto

Además, es posible que deba cambiar Maven JRE (consulte la respuesta de @ jlars62), que es la siguiente. Ir a ejecutar -> Ejecutar configuraciones, seleccionando Maven Build I se estaba ejecutando (desde el panel izquierdo). Luego, hice clic en la pestaña JRE y seleccioné la opción Área de trabajo predeterminada JRE

enter image description here

Para mí, es exactamente lo que el experto de eclipse se queja

enter image description here

Entonces, Edit botón Edit y cambio la ruta a la carpeta JDK, luego limpio el proyecto y todo comienza a funcionar

Para mí, nada funcionó hasta que hice este cambio en mi pom.xml:

  ...  ...  maven-compiler-plugin 3.1  true C:\Program Files\Java\jdk1.7.0_45\bin\javac.exe     

Otras notas

Pude ver que m2e se estaba ejecutando en un JRE, no en el JDK. Nada de lo que hice cambió esto, incluyendo agregar esto al eclipse.ini:

 -vm C:\Program Files\Java\jdk1.7.0_45\bin\javaw.exe 

Al final, nunca conseguí que m2e se ejecutara en un JDK, pero establecer el comstackdor de Java explícitamente (como se indica más arriba) fue el truco.

  1. Establezca la variable de entorno JAVA_HOME en la carpeta raíz JDK: obligatoria si ejecuta la línea de comandos o maven (google para esta variable)
  2. En las propiedades del proyecto en la sección Comstackdor Java seleccione el JDK requerido – si ejecuta directamente desde eclipse

En mi caso, se resolvió haciendo esto:

Vaya a su ‘Configuración de tiempo de ejecución’ y configure su JRE en un JDK.

Seleccione el JDK correcto para su Runtime

Seleccione JRE predeterminado

Copié la respuesta solo en caso de que se elimine por alguna razón, pero la fuente está aquí

Obtuve este error al intentar hacer una creación de maven desde dentro de Eclipse.

Para mí, la respuesta fue Run -> Run Configurations , seleccionando la Maven Build que estaba ejecutando (desde el panel izquierdo). Luego, hice clic en la pestaña JRE y seleccioné la opción Workspace default JRE

Vaya a Windows -> Preferencias -> Java -> JRE instalados

puede ser jre ya está agregado enter image description here

haga clic en Agregar -> VM estándar -> Siguiente -> Directorio

y busque el JDK en mi caso, la ruta fue C:\Program Files\Java\jdk1.8.0_111

luego haz clic en finalizar.

verás una ventana como esta enter image description here

seleccione JDK -> Aplicar -> Ok

Y has terminado.

Una alternativa si la respuesta de Jaipster no funciona es ir a:
Ventana> Preferencias> Java> JRE instalados

Luego edite el jre para que apunte al jdk y no al jre (el jre home archivado en el editor del paquete jre)

Eso funcionó para mí.

Intenté todo lo anterior, sin embargo, recibí el mismo mensaje de error.

En mi caso, un JRE real se usó incorrectamente como Biblioteca del sistema de JRE en la ruta de comstackción específica del proyecto, que obviamente estaba anulando todas las otras configuraciones que se tratan aquí.

Si eso es así en su caso, intente lo siguiente:

  1. Abra las bibliotecas específicas del proyecto de la ruta de creación de Java: haga clic con el botón derecho en “Proyecto> Ruta de creación> Configurar ruta de comstackción …” y seleccione la pestaña “Bibliotecas”.
  2. Selecciona la entrada “Biblioteca del sistema JRE” y presiona “Eliminar”.
  3. Presiona “Agregar biblioteca …”.
  4. Un asistente aparece. Selecciona “JRE System Library” y presiona “Next>”.
  5. Ahora seleccione el JDK correcto (en mi caso “JRE de espacio de trabajo predeterminado”, que configuré usando un JDK).
  6. Cierre el asistente presionando “Finalizar”.
  7. Cierre el cuadro de diálogo “Propiedades” presionando “OK”.

Si está ejecutando el comando Maven desde cmd , asegúrese de establecer la ruta jdk antes de ejecutar el comando. En mi caso, he creado un archivo .bat que contiene lo siguiente:

 set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_60 start cmd.exe /k "cd c:\aem_proj\sis\aau" 

Hay varias opciones para especificar.

Pasos: a la derecha en el proyecto en el explorador del proyecto Vaya a Ejecutar-> Ejecutar configuración -> Haga clic en Crear Maven -> Haga clic en su configuración de comstackción / o cree una configuración nueva. Verá la ventana como la instantánea dada a continuación, haga clic en la pestaña JRE allí.

Verá que tiene 3 opciones 1) Espacio de trabajo predeterminado JRE 2) Entorno de ejecución 3) JRE alternativo enter image description here 1) Espacio de trabajo El JRE predeterminado se establece desde el menú ‘Ventana’ en la parte superior -> Preferencias -> Java -> JRE instalados – Aquí puede agregar su jdk enter image description here 2) El entorno de ejecución jdk se puede establecer en pom.xml como lo menciona @ksnortum

    maven-compiler-plugin 3.1  true C:\Program Files\Java\jdk1.7.0_45\bin\javac.exe    

3) JRE alternativo se puede utilizar para seleccionar un jdk de su directorio

Me enfrenté al mismo problema al tratar de crear un archivo jar de la aplicación de mi proyecto utilizando mvn clean install , aunque la aplicación funcionaba bien al ejecutar desde Eclipse.

El problema fue, de hecho, demasiado ingenuo, que no había establecido la variable de entorno JAVA_HOME . Todo lo que tuve que hacer es establecer la variable de entorno JAVA_HOME en el directorio JDK, asegúrese de que no esté hasta “\ bin” y sin punto y coma “;” .

enter image description here

Cómo lo entendí es como:

La aplicación funcionó bien en Eclipse ya que la Biblioteca del Sistema JRE se refería a JRE dentro de la carpeta JDK en lugar de a la carpeta JRE externa sin JDK. [Como se explica muy bien en otras respuestas]

Esta configuración no se aplica al comando maven que ejecutamos en el símbolo del sistema. Seguirá buscando la variable JAVA_HOME para acceder a la biblioteca del sistema JRE y, cuando no se encuentre, se refiere a la carpeta JRE externa sin JDK.

Para mí, el JRE estaba en la variable de entorno PATH antes de la ruta JDK

  1. C: \ ProgramData \ Oracle \ Java \ javapath
  2. C: \ env \ jdk1.8.0_151 \ bin

Así que eliminé 1. Probablemente cambiarlos también lo arreglaría.

Hay otra posible respuesta a esta pregunta, y puedo ser la única persona lo suficientemente tonta como para haber tropezado con esto, pero creo que vale la pena agregar, ya que ninguna de las otras respuestas se aplicó porque ya tenía esas configuraciones correctas.

Cuando instala un JDK, el instalador le pregunta dónde desea instalar los archivos. De forma predeterminada, en Windows, esto es algo así como C: \ Program Files \ Java \ jdk1.8.0_74 (o la versión que esté instalando).

Luego, le solicita un directorio para instalar el JRE en, que de forma predeterminada es algo así como C: \ Program Files \ Java \ jre1.8.0_74.

Tenga en cuenta que uno es jdk 1.8.0_74 y el otro es jre 1.8.0_74

Estaba apurando las cosas, y pensando que el instalador me hacía la misma pregunta dos veces, configuré las ubicaciones de instalación de JDK y JRE en D: \ devtools \ jdk \ jdk1.8.0_74, lo que provocó que el instalador sobrescribiera el JDK con JRE. Esto resultó en (entre otras cosas) un javac.exe perdido en mi contenedor JDK, y el mismo error que el OP reportó aquí en todas mis versiones maven.

Tengo una solución.

La solución más común para este problema es cambiar la ubicación de jdk como mis JRE instalados en lugar de la ubicación de JRE, pero eso no resolvió mi problema por esta vez.

Así que hice lo siguiente para resolver el problema. Expanda la pestaña JRE instalados y encontrará una pestaña de Entornos de ejecución .

Haga clic en su entorno de ejecución favorito. En mi caso fue JAVASE-1.8 . Ahí muestra 2 opciones. JDK y JRE . Seleccione JDK allí y el problema está resuelto.

enter image description here

Solo perdí 3 horas con este problema hasta que logré que funcionara. Tuve este error en la Terminal Eclipse al emitir un comando de comstackción mvn:

No se proporciona comstackdor en este entorno. ¿Quizás estás ejecutando un JRE en lugar de un JDK?

Entonces leo aquí que tengo que hacer una nueva variable del sistema llamada JAVA_HOME y hacer que apunte hacia la carpeta de instalación jdk. Sin embargo, esto generó otro error:

La opción de origen 1.5 ya no es compatible. Use 1.6 o posterior

No pude encontrar una solución para este, así que …

¡Así que la solución para que todo desaparezca es instalar Java SE Development Kit 8! Estaba usando 9 pensando que si es el último debe ser mejor …

De todas formas…

  1. Desinstale todas las versiones de Java de su computadora
  2. Instale JDK8 desde aquí: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

  3. Luego defina el valor ambiental del sistema JAVA_HOME – tutorial aquí: https://docs.oracle.com/cd/E19509-01/820-3208/inst_cli_jdk_javahome_t/

  4. ¡Reinicia Eclipse y diviértete! (al menos eso es lo que hice)

Esperando que esto evite a algún pobre vagabundo de algún problema.

En mi caso, tenía la ruta variable del sistema con la ubicación “C: \ ProgramData \ Oracle \ Java \ javapath”.

En la ubicación “C: \ ProgramData \ Oracle \ Java \ javapath” java, javaw solo está allí. Así que estoy obteniendo el mismo error.

Una vez que eliminé todos los archivos en la carpeta “C: \ ProgramData \ Oracle \ Java \ javapath” mi error se resolvió.

me enfrenté al mismo problema, el error que cometí fue que agregué la ruta jre solo en la ruta var, no en la ruta jdk. Cuando jdk se agregó a path y creé el proyecto maven funciona perfectamente. Gracias a todos

Prueba esto.

  ...  ...  maven-compiler-plugin 3.1  true  path to jdk \bin\javac.exe     

Agregar nueva definición JRE (seleccionar ruta JDK), funcionó para mí.

http://help.eclipse.org/neon/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftask-add_new_jre.htm

Hice el siguiente cambio y funcionó para mí. Espero que ayude a alguien. enter image description here

Además de la respuesta anterior, podría decir que simplemente intente ejecutar Maven desde la terminal (fuera de Eclipse). De esta forma, si se construye desde el exterior pero no en Eclipse, puede comprender que el problema debería estar en Eclipse.

Hay varias respuestas con respecto a esta pregunta, pero todas están relacionadas con la configuración de ruta correcta de JDK, pero con JRE solo podemos resolver este problema.

Solo tenemos que utilizar el ensamblaje de implementación para configurar la ruta del archivo de guerra empaquetado del proyecto Java EE y luego volver a ejecutar maven-install.

Pasos para hacer uso del ensamblaje de implementación:

  1. Haga clic derecho en el proyecto Jave EE -> haga clic en Propiedades -> haga clic en Ensamblaje de despliegue

  2. Haga clic en el botón Agregar -> Haga clic en Archivar desde el Sistema de archivos -> Haga clic en siguiente -> Haga clic en Agregar -> Ir al directorio .m2 \ respository y busque el archivo war generado -> Seleccionar archivo war -> Haga clic en el botón Abrir -> Haga clic en Aplicar -> Aceptar

  3. Haga clic con el botón derecho en el proyecto -> Haga clic en Instalación de Maven en Ejecutar como

Esto construirá su proyecto con éxito, sin ningún error de comstackción.

Espero que esto resuelva el problema sin JDK.

¿Te estás perdiendo alguna construcción de maven?

Además de los cambios JRE anteriores. Todavía me enfrenté a un problema similar. Me faltaba la dependencia de JUnit después de agregar que está funcionando bien.

Espero que esto ayude

Tengo el mismo problema y acabo de agregar JAVA_HOME a las variables de entorno .

env var

  • Si está utilizando eclipse, simplemente consulte https://stackoverflow.com/a/21279068/6097074
  • Si está utilizando intellij, justo después de agregar JAVA_HOME abra el símbolo del sistema desde el directorio del proyecto y ejecute mvn clean install (no use el terminal intellij).

Obtuve el mismo error cuando creé una nueva instancia de EC2 ubuntu 16.04 con Java ya instalado y mientras ejecutaba el paquete mvn clean, me encontré con este problema y la siguiente solución funcionó para mí.

Si está trabajando en un servidor Ubuntu, puede intentar instalar Java nuevamente y para eso puede usar esta respuesta. Cómo instalar el JDK en Ubuntu Linux