web-dev-qa-db-ja.com

Mavenエラー:おそらくJDKではなくJREで実行していますか?

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
51
Kraken

どうやら、私の$ Java_HOMEのlibフォルダー内にtools.jarファイルが必要です。 libフォルダーがなかったため、コマンドを使用してjdkを再インストールしました

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

また、 このリンクは一部の人々を助けるかもしれません。

42
Kraken

Java 8(ubuntu 16.04)で同じ問題に直面し、mvnコマンドラインを使用してコンパイルしようとしました。

$Java_HOMEJava -versionmvn -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が再びコンパイルできるようになります。

117
ced

これは、jdkではなくjreを実行しているためです。jdkをインストールするには、以下の手順に従ってください。

Amazon linux/redhatにJava 8をインストール

-> 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 javac #pick Java 1.8を押して2

ありがとうございました

12
sachin_ur

私にとっては、次のように機能しました。 JREまたはJDKを指しているかどうかにかかわらず、Java_HOME環境変数を確認してください。 JREを指している場合は、「おそらく、JDKではなくJREで実行している」という問題に直面します。その場合、パスをJDKに変更します。

このように変更して、それは私のために働いた。

Java_HOME C:\ Program Files\Java\jdk1.8.0_31

6
sks

この構成を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>
4
AnuradhaS

セットアップする場所の詳細を追加するだけです。主な理由は、環境変数のJava_HOMEセットアップが正しいJDKロケーションを指している必要があることです。

  1. システムの確認->システムの詳細設定
  2. 環境変数をクリックします
  3. 変数Java_HOMEを追加-> "C:\ Program Files\Java\jdk1.8.0_141;"
  4. 「パス」を編集->%Java_HOME%を追加します。既存のテキストに。
3
Barani r

これは私の問題を修正した方法です

プロジェクトの右クリック>プロパティ> Javaコンパイラー(使用しているものを選択してください)

私にとっては1.5でしたが、1.8がインストールされています。だから私はそれを1.8に変更しました..そしてそれがうまくいった!.

2
Mack

問題文 =この環境ではコンパイラは提供されていません。おそらく、JDKではなくJREで実行していますか?

ソリューション

問題を解決するには、以下のように環境変数を設定してください

変数名:Java_HOME

変数値:C:\ Program Files\Java\jdk1.8.0_202

変数名:M2_HOME

変数値:C:\ Program Files\Apache-maven-3.6.0

さらに、「System Variables」にJavaとmavenパスを追加します。

  1. C:\ Program Files\Java\jdk1.8.0_202\bin
  2. C:\ Program Files\Apache-maven-3.6.0\bin
2
Navdeep Ghotra

私はcentosを使用しており、mvnコマンドをゴール、installで実行すると同じエラーが発生します。いくつかのグーグルの後、私は次のコマンドを実行するソリューションを見つけました。

Sudo yum install Java-1.8.0-openjdk-devel

1

/ usr/binに「javac」があるかどうかを確認します。 JREをインストールしておらず、「Java-1.8.0-openjdk-devel.x86_64」のようなjdk devバージョンをインストールする必要がある場合

1
Raja Rajan

プロジェクトフォルダー(Mavenの1つ)を右クリックし、プロパティを選択して、プロパティウィンドウから再度[Java Compiler]を選択し、コンパイラー準拠レベルに対して選択されているものを確認し、jreと同じバージョンであることを確認します。私の場合は1.8でしたが、コンパイラー準拠レベルに対して1.5が選択されました。 1.8を選択した後、ビルドはこのエラーなしで成功しました。

0
Qaddaffi

Eclipse mavenプロジェクトで同じ問題に直面していました。
プロジェクトを右クリック
maven-> プロジェクトの更新
または単にALT + F5を押す

0
Abhishek D K

Java_HOMEがJDKを指していても、問題に直面しました。例外がスローされた理由を理解するのに時間がかかりました。

問題は、ウィンドウマシンでJava_HOMEを管理ユーザーとして設定したことです。正しいJDKを指すJava_HOME環境変数をユーザープロファイル環境変数設定に追加する必要があります。

0
Arnav Rao

同じエラーが発生し、ユーザー変数:Java_HOMEおよびSDKの値が欠落していました-私の場合は「C:\ Program Files\Java\jdk-9.0.1」

0
user1913615

AWS Linux AMIにJava-1.8.0-openjdkパッケージをインストールした後、同じ問題が発生しました。私が作った誤った仮定は、ファイルがopenjdkで終わっているため、jdkバージョンになるというものでした。これはそうではありません。

openjdkインストールページ は、すべてを明確に説明しています。

Java-1.8.0-openjdkパッケージには、Java Runtime Environmentのみが含まれています。 Javaプログラムを開発する場合は、Java-1.8.0-openjdk-develパッケージをインストールします。

すでにJava-1.8.0-openjdkパッケージをインストールしている場合、JREで機能している場合はそれとJava_HOME値をそのままにして、yum install Java-1.8.0-openjdk-devel -yを使用してJava-1.8.0-openjdk-develパッケージをインストールします。

0
Paul.M

私は同じ問題に直面していました。解決するために、PATHでJREの前にJDKを配置する必要がありました。

0
MikeF

Linuxでの問題を解決するには、JDKがないため、JDKをダウンロードしてLinuxサーバーにアップロードし、次のように入力します。tar xvf jdk-8u45-linux-x64.tar.gz

0
Hailin Tan