Подтвердить что ты не робот

Ошибка 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
4b9b3361

Ответ 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 в " Системные переменные ", как показано ниже:

  1. C:\Program Files\Java\jdk1.8.0_202\bin
  2. 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