Cuando trato de generar un archivo war, muestra algún error como
[ERROR] Unable to locate the Javac Compiler in:
[ERROR] C:\Program Files\Java\jre7\..\lib\tools.jar
Cuando lo hago echo %path%
se nota
C:\Windows\System32;D:\name\name1\Softwares\Maven\apache-maven-3.0.4\b
in;C:\Program Files\Notepad++\;%JDK_HOME%
Cuando lo hago echo %JDK_HOME%
D:\name\name\core java\software\Java\Java_1.6.0_04_win\jdk1.6.0_04\bin
No sé por qué maven se refiere a jre, cuando mi variable de entorno es jdk. También cambié el JRE instalado a jdk1.6.
\bin
y debería tener%JDK_HOME%\bin
en su ruta. Puedes correrD:\name\name\core java\software\Java\Java_1.6.0_04_win\jdk1.6.0_04\bin\java -version
?JAVA_HOME
que se establezca en su directorio de instalación de JDK, noJDK_HOME
. Consulte las instrucciones de instalación de Maven .Respuestas:
Está solo en la configuración de Eclipse
Tiene 4 pasos TODO.
Paso 1: haga clic con el botón derecho en Propiedades del proyecto Eclipse
Paso 2: Ruta de compilación de Java -> Bibliotecas
Paso 3: Seleccione la biblioteca del sistema JRE -> Haga clic en el botón Editar -> Haga clic en el botón JRE instalados ...
Paso 4: Edite JRE como Establecer JRE Home = JAVA_HOME
ScreentShot:
fuente
Vaya a Ventana -> Preferencias ... -> Java -> JRE instalados
Editar JRE Home = JAVA_HOME o JAVA_HOME \ jre
Por ejemplo, si usa jdk1.6.0_04 que está instalado en C: \ Archivos de programa, haga el siguiente cambio:
C: \ Archivos de programa \ Java \ jdk1.6.0_04 \ jre o C: \ Archivos de programa \ Java \ jdk1.6.0_04 en lugar del predeterminado que está en C: \ Archivos de programa \ Java \ jre7
fuente
Tuve el mismo problema, pero en mi caso, el directorio eclipse señaló que el JRE era el JDK. Entonces, busqué el archivo tools.jar y estaba allí.
yo hice
Y luego compilado bien
fuente
La variable JDK_HOME siempre debe apuntar al directorio base del jdk, no al directorio bin:
D:\name\name\core java\software\Java\Java_1.6.0_04_win\jdk1.6.0_04
Eso definido, fija tu camino para ser
C:\Windows\System32;D:\name\name1\Softwares\Maven\apache-maven-3.0.4\bin;C:\Program Files\Notepad++\;%JDK_HOME%\bin
fuente
Fue un problema de Eclipse. Cuando intenté construirlo desde la línea de comando usando
mvn package
funcionó bien.
fuente
Parece que lo ha
JDK_HOME
definido como una variable de usuario yPATH
definido como una variable de sistema, o viceversa,echo %PATH%
no debe contener variables sin resolver como...;%JDK_HOME%
.Asegúrese de que la
%JDK_HOME%\bin
ruta esté en su variable PATH, sin resolver, incluso si tiene que poner la ruta explícitamente.fuente
Tuve el mismo error, debido a la versión JUNIT, tenía 3 3.8.1 y cambié a 4.8.1.
entonces la solución es
tienes que ir a POM y asegurarte de que tu dependencia se vea así
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.8.1</version> <scope>test</scope> </dependency>
fuente
Para otros que enfrentan este problema en Eclipse incluso con la ruta configurada correctamente en JDK, debe eliminar los otros JRE de los JRE instalados.
Vaya a Ventana -> Preferencias -> Java -> JRE instalados
Seleccionar JRE no utilizados de forma individual y Eliminar
Funcionó para mí.
fuente
Probé todas las sugerencias anteriores, que no funcionaron para mí, pero encontré cómo corregir el error en mi caso.
Los siguientes pasos hicieron que el proyecto se compilara con éxito:
En el explorador de proyectos, haga clic con el botón derecho en el proyecto, seleccione "propiedades" En el árbol de la derecha, vaya a la ruta de compilación de Java. Seleccione la pestaña "bibliotecas". Haga clic en "Agregar biblioteca". Seleccione la biblioteca del sistema JRE. Haga clic en Siguiente. Seleccione el botón de opción JRE alternativo. Haga clic en "JRE instalado". Seleccione el JRE con la versión correcta. Haga clic en Appy y cierre. En la siguiente pantalla, haga clic en finalizar. En la ventana de propiedades, haga clic en Aplicar y cerrar. En el explorador de proyectos, haga clic con el botón derecho en su pom.xml y seleccione ejecutar como> compilación de maven En el cuadro de texto del objetivo, escriba "instalar". Haga clic en Ejecutar.
Esto hizo que el proyecto se construyera con éxito en mi caso.
fuente
En Eclipse, acciones como importar proyectos de Maven o invocar "Fuentes de actualización" se ejecutan en la misma JVM en la que se ejecuta Eclipse. Si esa JVM proviene de JRE que no es parte de JDK, no habría un compilador de Java (el tools.jar).
Entonces, para lanzar Maven desde dentro de Eclipse, el JRE utilizado para el lanzamiento también debe provenir de JDK. De forma predeterminada, Eclipse registra el JRE en el que se inicia, pero esto se puede configurar en la página de preferencias "Ventana / Preferencias ... / Java / JRE instalados" como se mencionó anteriormente por Parthasarathy
Alternativamente, puede especificar compilerId en pom.xml, por lo que Maven no buscará JDK al compilar código Java:
<plugin> <artifactid>maven-compiler-plugin</artifactid> <configuration> <compilerid>eclipse</compilerid> </configuration> <dependencies> <dependency> <groupid>org.codehaus.plexus</groupid> <artifactid>plexus-compiler-eclipse</artifactid> <version>xxxx</version> </dependency> </dependencies> </plugin>
fuente
Me he encontrado con un problema similar y, como nadie publicó un enfoque similar al mío, aquí voy.
fuente
Puedo resolverlo siguiendo los siguientes pasos:
Por último, ejecute Maven Clean y Maven Install.
fuente
Depende de la versión de Maven. Cuando instale una versión más reciente de Maven, este error no aparecerá. También puede agregar otro directorio con el archivo tools.jar lib / tools.jar; también resuelve este problema.
fuente
Si estamos haciendo todos los pasos anteriores que pueden confundirse y nuestro problema solo falta tools.jre, simplemente agregue tools.jre mediante los siguientes pasos y el problema se resolverá.
Paso 1: en eclipse, vaya a Windows -> preferencias
Paso 2: Java -> JRE instalados (haga doble clic en él)
Paso 3: Haga clic en el botón Editar -> Haga clic en Agregar archivos JAR externos
Paso 4: Ahora seleccione la ruta tools.jar
ahora aplique cambios y funciona bien.
Aquí está la captura de pantalla
fuente
Aunque hay algunas respuestas anteriores que no son de Eclipse para esta pregunta que no mencionan a Eclipse, requieren cambios en la variable de ruta. Una alternativa es usar la opción de línea de comando, java.home, por ejemplo:
mvn package -Djava.home="C:\Program Files\Java\jdk1.8.0_161\jre"
Observe el \ jre al final: una necesidad sorprendente.
fuente
Ninguna de las respuestas actuales me ayudó aquí. Obtuvimos algo como:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin: #.#.#:compile (default-compile) on project Streaming_Test: Compilation failure [ERROR] Unable to locate the Javac Compiler in: [ERROR] /opt/java/J7.0/../lib/tools.jar
Esto sucede porque la instalación de Java ha determinado que es una instalación de JRE. Se espera que haya cosas de JDK sobre el subdirectorio JRE, de ahí que
../lib
en la ruta. Nuestrotools.jar
está en$JAVA_HOME/lib/tools.jar
no$JAVA_HOME/../lib/tools.jar
.Desafortunadamente, no tenemos la opción de instalar un JDK en nuestro sistema operativo (no preguntes), así que esa no era una opción. Solucioné el problema agregando lo siguiente al maven
pom.xml
:<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <fork>true</fork> <!-- not sure if this is also needed --> <executable>${JAVA_HOME}/bin/javac</executable> <!-- ^^^^^^^^^^^^^^^^^^^^^^ --> </configuration> </plugin>
Al apuntar el ejecutable al lugar correcto, esto al menos superó nuestras fallas de compilación.
fuente
Para Intellij Idea, configure todo de manera adecuada (de manera similar a esto):
JAVA_HOME = C:\Program Files\Java\jdk1.8.0_60 JRE_HOME = JAVA_HOME\jre
y no olvide reiniciar Idea . Este programa toma las variables al inicio, por lo que cualquier cambio en las variables del entorno mientras se ejecuta el programa no tendrá ningún efecto.
fuente