(jdk
ディレクトリにグローバル%java_home%
ポイントで)いいえ、それは間違っていないのです。 JDKで使用されているJREを指しています.JREは、それが想定しているものです。あなたはJAVA_HOME
外Mavenをプリントアウトした場合、それが正しく印刷される必要があります:
C:\>echo %JAVA_HOME%
C:\Program Files\Java\jdk1.7.0_07
C:\>mvn -version
Apache Maven 3.0.4 (r1232337; 2012-01-17 10:44:56+0200)
Maven home: C:\APPS\apache-maven-3.0.4\bin\..
Java version: 1.7.0_07, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.7.0_07\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
C:\>
をだから、基本的にJAVA_HOMEは、JDKのインストールをポイントする必要があります(Mavenのは、tools.jarのを必要とします)が、Mavenは、実際に自分自身を実行するために、JDK内のJREを使用しています。 source codeから分かるように
mvn -version
使用して、Mavenは、Javaの内部のjava.homeプロパティを使用しています。
version.append("Java home: " + System.getProperty("java.home", "<unknown java home>")).append(LS);
このプロパティは、JAVA_HOME環境設定と同じものではありませんので、それはあなたをだますかもしれません。実際にJREがあなたのコードを実行していることを示す動的なプロパティです。 Test.javaテストクラスをコンパイルして実行すると、JAVA_HOMEがJDKを指している場合、java.homeの値がJAVA_HOMEと等しくないことがわかります。これは予想されます。 thisを引用
:
JAVA_HOMEとのjava.homeの違いは何ですか?
JAVA_HOMEはJDKのインストールディレクトリです(例:C:\ jdk5)。環境変数として を設定し、Windowsバッチファイルまたは Unixスクリプトで参照することを意図しています。私はいつも私のWindowsのコントロールパネルと.tcshの ファイルと他の一般的な環境変数を持っています。いくつかのJava アプリケーションは、この目的のためにjdk.homeという名前を使用しています。これは、 という名前の方がいいと思います。しかし、JAVA_HOMEは最初から使用されており、現在は となっています。
java.homeは、JREインストールディレクトリ(例:C:\ jdk5 \ jre)または C:¥Program Files¥Java¥jre1.5.0_06です。 JAVA_HOMEとは異なり、私は環境変数として java.homeを見たことがありません。 java.homeは、Javaの組み込み関数 で、その値はJREインストールディレクトリです。 JavaシステムのプロパティもすべてAntビルドプロパティとして公開されているため、 はビルドファイルで$ {java.home}を使用することもできます。
jre.homeはより良い名前ですか?多分、私は太陽が に変わるとは思わない。
あなたはそのMavenを見ることができるがmvn.batにJAVA_HOMEを使用しています。
:endInit
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
..
%MAVEN_JAVA_EXE% %MAVEN_OPTS% -classpath %CLASSWORLDS_JAR% ..
をそして、あなたが確認する場合は、あなたがして、mvn.batで文をコメントアウト「オフ@echo」することができますそれが使用されていることがわかります。
TL; DR:指定した情報に基づいて、設定は正しいので、何も変更する必要はありません。
編集:今もan issue open about this being confusingがあります。多分彼らは将来それを変えるだろう。
ありがとうございます! +1の 'TL; DR';)) –
いいえprob。おそらくこれが質問に答えられたと思ったら受け入れるでしょう:) – eis
@eisこんにちは、問題がありますhttp://stackoverflow.com/questions/26313902/maven-error-perhaps-you-are-running-on-a- jre-a-j-jkここ、あなたがそれを理解するのを助けてくれますか?ありがとう。 – Kraken