2017-07-21 4 views
0

JavaがJAVA_HOMEは

$ which java 
/usr/bin/java 

MVNの-version私は、オンラインで利用可能だった解決策のいくつかを試してみましたが、このエラーに

$ mvn -version 
The JAVA_HOME environment variable is not defined correctly 
This environment variable is needed to run this program 
NB: JAVA_HOME should point to a JDK not a JRE 

を与えている。このパスにインストールされているのmavenで働いていませんそれらは私のために働かない。これらのソリューションのいくつかは以下のファイル

~/.bashrc 
~/.bash_profile 
~/.profile 
また、私は1つのシェルコマンドを実行しようとすると、

$export JAVA_HOME = /usr/libexec/java_home 

または

$export JAVA_HOME = $(/usr/libexec/java_home) 

を追加することを示唆し、それは私にエラーを示しますlike

Error: JAVA_HOME is not defined correctly. 
CARBON cannot execute /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin/java 
+0

'/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin/java-version'を手動で実行しようとしましたか? Macでは '/Library/Java/JavaVirtualMachines/jdk1.8.0_141 'を使うことをお勧めします。jdk/Contents/Home/bin/java --version'? – khmarbaise

+0

幾分遅れましたが、私はOPの問題の大部分が、環境値を設定するとき、または編集後にbashrcファイルのソースに失敗したときに、スペースを使用することによって引き起こされたものと思われます。 –

答えて

3

を、ほぼ日のために苦労した後、私はMavenのが読んでされていないことが判明しました$JAVA_HOMEから

~/.bashrc 
~/.bash_profile 
~/.profile 

が、私は、私が直面した出力Ubuntuの で

mvn -v 
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=1024m; support was removed in 8.0 
Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-03T15:39:06-04:00) 
Maven home: /usr/local/Cellar/maven/3.5.0/libexec 
Java version: 1.8.0_141, vendor: Oracle Corporation 
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_141.jdk/Contents/Home/jre 
Default locale: en_CA, platform encoding: UTF-8 
OS name: "mac os x", version: "10.12.6", arch: "x86_64", family: "mac" 
+1

ありがとうございます。 mavenがシェル環境変数の代わりに〜/ .mavenrcの$ JAVA_HOMEを探しているというヒントは正しいです。 – wulfovitch

2

それを修正するには、次のようにJAVA_HOMEを更新:

$ vim .bash_profile 

export JAVA_HOME=$(/usr/libexec/java_home) 

$ source .bash_profile 

実行Mavenの再:

$ mvn -version 
+0

あなたが言ったすべてのステップに従っていますが、私はまだ同じ問題を抱えています。 javaホームパスは次のように更新されます $ echo $ JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.8.0_141.jdk/Contents/Home –

+0

JAVA_HOMEは、JREではなくJDKを指しているはずです。 JREではなくJDKを適切に配置してください。 – ASR

1

を得た後、~.mavenrc

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_141.jdk/Contents/Home 

を追加したときには、その最終的

.mavenrc〜から$JAVA_HOMEを読み込み同様の問題。私は、パス宣言$JAVA_HOME=/home/max/jdk1.8.0_144[[_NO_WHITE_SPACE_AFTER_DECLARATION]]

    • ホワイトスペースとの慎重な例えば$JAVA_HOME=PATH_TO_JDKよう$JAVA_HOME=/home/max/jdk1.8.0_144

      /etc/environment$JAVA_HOMEを設定された任意のダブルアポストロフィに$JAVA_HOME="/home/max/jdk1.8.0_144"

    • を入れないでください/ binに例を入れないでください$JAVA_HOME=/home/max/jdk1.8.0_144/bin < - これは間違っています