Ошибка Maven: Возможно, вы работаете на JRE, а не в JDK?
Я никогда не работал с Maven раньше, и я следую инструкциям здесь. Когда я запускаю команду
mvn integration-test -Pamp-to-war
Сначала он загрузил целую кучу зависимостей, и в итоге он показал,
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
Я на ubuntu 13.04.
Если вы хотите, чтобы я вам сказал, дайте мне знать. Спасибо.
ИЗМЕНИТЬ
Когда я делаю echo $JAVA_HOME
, я получаю /usr/lib/jvm/java-7-openjdk-i386/
Когда я делаю mvn -version
Получаю,
Apache Maven 3.0.4
Maven home: /usr/share/maven
Java version: 1.7.0_25, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-7-openjdk-i386/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.8.0-26-generic", arch: "i386", family: "unix"
Кроме того, я обнаружил эту проблему, с которой столкнулся кто-то другой. Но я не уверен, как решить указанное решение?
Дальнейшие изменения.
[email protected]:/usr/lib/jvm/java-7-openjdk-i386$ ls -l
total 12
drwxr-xr-x 2 root root 4096 Sep 9 10:44 bin
lrwxrwxrwx 1 root root 41 Jul 4 2013 docs -> ../../../share/doc/openjdk-7-jre- headless
drwxr-xr-x 5 root root 4096 Oct 13 2013 jre
drwxr-xr-x 4 root root 4096 Oct 13 2013 man
Ответы
Ответ 1
По-видимому, для файла $JAVA_HOME требуется файл tools.jar внутри папки lib. У меня не было папки lib, поэтому я переустановил свой jdk, используя команду
apt-get install openjdk-7-jdk openjdk-7-doc openjdk-7-jre-lib
Кроме того, эта ссылка может помочь некоторым людям.
Ответ 2
Я столкнулся с той же проблемой с java 8 (ubuntu 16.04), пытаясь скомпилировать с помощью командной строки mvn
.
Я проверил мои $JAVA_HOME
, java -version
и mvn -version
. Кажется, все в порядке, указывая на /usr/lib/jvm/java-8-openjdk-amd64
.
Похоже, что java-8-openjdk-amd64 по умолчанию не установлен и содержит только JRE (несмотря на его имя "jdk" ).
Повторная установка JDK сделала трюк.
sudo apt-get install openjdk-8-jdk
Затем в /usr/lib/jvm/java-8-openjdk-amd64
добавляются новые файлы и новые папки, а mvn снова может скомпилироваться.
Ответ 3
Это из-за запуска jre, а не jdk, для установки jdk выполните следующие шаги
Установка Java 8 в Amazon Linux/Redhat
→ yum search java | grep openjdk
yum search java | grep openjdk
→ yum install java-1.8.0-openjdk-headless.x86_64
→ yum install java-1.8.0-openjdk-devel.x86_64
→ update-alternatives --config java #pick java 1.8
и нажать 1
→ update-alternatives --config javaС#pick java 1.8
и нажать 2
Благодарю вас
Ответ 4
Для меня это работало следующим образом.
Посмотрите переменную среды JAVA_HOME, указываете ли вы на JRE или JDK.?
Если это указывает на JRE, вы столкнетесь с вопросом "Возможно, вы работаете на JRE, а не в JDK". если так изменить путь к JDK.
Модифицировав это, он работал у меня.
JAVA_HOME C:\Program Files\Java\jdk1.8.0_31
Ответ 5
Добавьте эти конфигурации в pom.xml
<project ...>
...
<build>
...
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<fork>true</fork>
<executable>C:\Program Files\Java\jdk1.7.0_79\bin\javac</executable>
</configuration>
</plugin>
</plugins>
</build>
...
</project>
Ответ 6
Просто добавьте более подробную информацию о том, где настроить. Основная причина в том, что настройка JAVA_HOME в переменной окружения должна указывать на правильное расположение JDK.
- Проверить систему → Предварительные настройки системы
- Щелкните по переменной среды
- Добавить переменную JAVA_HOME → "C:\Program Files\Java\jdk1.8.0_141;"
- Изменить "путь" → добавить% JAVA_HOME%; к существующему тексту.
Ответ 7
Постановка проблемы= Компилятор в этой среде не предусмотрен. Возможно, вы работаете на JRE, а не на JDK?
Решение
Пожалуйста, установите переменную Environment, как показано ниже, чтобы решить проблему
Имя переменной: JAVA_HOME
Значение переменной: C:\Program Files\Java\jdk1.8.0_202
Имя переменной: M2_HOME
Значение переменной: C:\Program Files\apache-maven-3.6.0
Кроме того, добавьте Java и путь maven в " Системные переменные ", как показано ниже:
- C:\Program Files\Java\jdk1.8.0_202\bin
- C:\Program Files\apache-maven-3.6.0\bin
Ответ 8
Вот как я исправил свою проблему
right clik в проекте > свойствa > Компилятор Java (выберите тот, который вы используете)
для меня было 1,5, но я установил 1.8. поэтому я изменил его на 1.8.. и voilla он сработает!
Ответ 9
Проверьте, есть ли /usr/bin 'javac'. Если вы не установили JRE и вам нужно установить версию jdk dev, например, "java-1.8.0-openjdk-devel.x86_64"
Ответ 10
Я столкнулся с той же проблемой. Мне нужно было поместить JDK перед JRE в PATH, чтобы решить.
Ответ 11
Я использую centos
и получаю ту же ошибку при запуске команды mvn
с целью install
. После некоторого поиска в Google я нашел решение выполнить следующую команду.
sudo yum install java-1.8.0-openjdk-devel
Ответ 12
Щелкните правой кнопкой мыши на папке вашего проекта (Maven one), выберите свойства и в окне свойств, снова выберите Java Compiler и посмотрите, что выбрано для уровня соответствия компилятора, и убедитесь, что он является той же версией, что и ваш jre. В моем случае у меня было 1.8, но 1.5 был выбран против уровня соответствия компилятора. После выбора 1.8 сборка была успешной без этой ошибки.
Ответ 13
У меня была такая же ошибка, и у меня отсутствовала переменная User: JAVA_HOME и значение для SDK - "C:\Program Files\Java\jdk-9.0.1" в моем случае
Ответ 14
У меня была такая же проблема после установки пакета java-1.8.0-openjdk
на AWS Linux AMI. Неправильное предположение, которое я сделал, заключалось в том, что, поскольку файл заканчивался на openjdk, это была бы версия jdk. Это не вариант.
Страница установки openjdk объясняет все ясно.
Пакет java-1.8.0-openjdk содержит только среду выполнения Java. Если вы хотите разрабатывать программы на Java, установите пакет java-1.8.0-openjdk-devel.
Если вы уже установили пакет java-1.8.0-openjdk, просто оставьте его и значение JAVA_HOME, если он работает для JRE, и установите пакет java-1.8.0-openjdk-devel, используя yum install java-1.8.0-openjdk-devel -y
.
Ответ 15
Я столкнулся с проблемой, хотя JAVA_HOME указывал на JDK. Потребовалось время, чтобы понять, почему это было исключение.
Проблема заключалась в том, что я установил JAVA_HOME в качестве администратора на моем компьютере с окном. Вам нужно добавить переменную среды JAVA_HOME, указывающую на правый JDK, в настройки переменной среды вашего профиля пользователя.
Ответ 16
Для решения моей проблемы в Linux нет JDK, я просто скачиваю JDK и загружаю на сервер Linux, и набираю: tar xvf jdk-8u45-linux-x64.tar.gz
Ответ 17
Я столкнулся с той же проблемой в проекте Eclipse Maven, все, что я сделал, было
щелкните правой кнопкой мыши на проекте
maven → обновить проект
или просто нажмите ALT+ F5
Ответ 18
Если вышеуказанные решения не работают, попробуйте поместить путь Java перед maven в путь переменной среды. Это сработало для меня.
%JAVA_HOME%\bin
C:\Program Files\apache-maven-3.6.1-bin\apache-maven-3.6.1\bin