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

Кроме того, я обнаружил эту проблему, с которой столкнулся кто-то другой . Но я не уверен, как решить указанное решение?

Дальнейшие изменения.

kraken@kraken-Inspiron-1545:/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

java,maven,compiler-errors,

41

Ответов: 12


Я столкнулся с той же проблемой с 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 снова может скомпилировать.


38 принят

По-видимому, для файла $ JAVA_HOME требуется файл tools.jar внутри папки lib. У меня не было папки lib, поэтому я переустановил мою команду jdk, используя команду

apt-get install openjdk-7-jdk openjdk-7-doc openjdk-7-jre-lib

Кроме того, эта ссылка может помочь некоторым людям.


Для меня это работало следующим образом. Посмотрите переменную среды JAVA_HOME, указываете ли вы на JRE или JDK.? Если это указывает на JRE, вы столкнетесь с вопросом «Возможно, вы работаете на JRE, а не в JDK». если это так изменит путь к JDK.

Модифицировав это, он работал для меня.

JAVA_HOME C: Program Files Java jdk1.8.0_31


3

Добавьте эти конфигурации в 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 FilesJavajdk1.7.0_79injavac</executable>
                </configuration>
            </plugin>
        </plugins>
    </build>
    ...
</project>

Вот как я исправил свою проблему

right clik в проекте> свойства> Компилятор Java (выберите тот, который вы используете)

для меня это было 1,5, но я установил 1.8. поэтому я изменил его на 1.8 .. и voilla это сработало !.

ява, Maven, компилятор ошибок,
Похожие вопросы