mavenビルド時のJAVA_HOMEエラー、OSX-10.8.4バージョン


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

OSXを10.8.4にアップグレードしました。OSXのアップグレード後、JDKとJREを7にアップグレードしましたが、プロジェクトのmavenビルドを試行すると、上記のエラーが発生します。

私が走るとき ls -al /System/Library/Frameworks/JavaVM.framework/Versions/

私は以下の応答を受け取ります

drwxr-xr-x  11 root  wheel  374 Jul 22 22:33 .
drwxr-xr-x  10 root  wheel  340 Jul 22 18:30 ..
lrwxr-xr-x   1 root  wheel   10 Jul 22 18:30 1.4 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 Jul 22 18:30 1.4.2 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 Jul 22 18:30 1.5 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 Jul 22 18:30 1.5.0 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 Jul 22 18:30 1.6 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 Jul 22 18:30 1.6.0 -> CurrentJDK
drwxr-xr-x   7 root  wheel  238 Jul 22 18:30 A
lrwxr-xr-x   1 root  wheel    1 Jul 22 18:30 Current -> A
lrwxr-xr-x   1 root  wheel   59 Jul 22 18:30 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents

このため ls -al /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin

CurrentJDKにコンテンツが表示されません。

実行中 /usr/libexec/java_home

私は得ます:

/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home

私はOS Xでの作業にかなり慣れていません。成功させるためにまだポイントを逃していないかどうかをお知らせください。


あなたは実行することができecho $JAVA_HOMEls -al /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/binそしてls -al /System/Library/Frameworks/JavaVM.framework/Versions/質問に結果を追加しますか?
ノーヒルサイド

@patrixの.bashrcに- > export JAVA_HOME=/usr/libexec/java_home .profileファイル- > export PATH=${JAVA_HOME}/bin:$PATH export CATALINA_HOME=/Library/Tomcat/Home .bashrcのと.profileには、上記のコマンドは..それに言及している
arvind406

@Patrix .. Javaパスがbashrcファイルから取得されないことがわかります。端末から個別にJAVA_HOMEを設定した場合のみ、プロジェクトをビルドできました。なぜこれがこのように起こっているのでしょうか?何か案が ?
arvind406 2013

回答:


9

アップルでは、​​JAVA_HOMEを「/ usr / libexec / java_home」に設定することを推奨しています。

私にとってうまくいったのは、これを$()で囲むことでした。そのため、次のコマンドで$(/ usr / libexec / java_home)のようにJAVA_HOMEを構成することになりました。

vim ~/.bash_profile 
export JAVA_HOME=$(/usr/libexec/java_home)
source ~/.bash_profile

これは完璧に機能しました!
rdegges 2015

2

/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin/java Appleが提供するJavaが存在する場合、その最新バージョンはJRE 1.6になります。

Oracle JDK(言及したJava 7)を使用するには、完全にインストールした場合はパス/ usr / bin / javaを使用します。JREはJavaアプレット専用であるため、/ usr / bin / javaには影響しないことに注意してください。

詳細については、Oracleのインストールドキュメントを参照してください。

そこからメモ

別のバージョンのJavaを実行するには、絶対パスを指定するか、java_homeツールを使用します。

/usr/libexec/java_home -v 1.7.0_06 --exec javac -version

詳細は、java_home(1)のマニュアルページを参照してください。


.profile-> export PATH = $ {JAVA_HOME} / bin:$ PATH export CATALINA_HOME = / Library / Tomcat / Home
arvind406

@arvindこれらのコメントはどういう意味ですか?
user151019 2013

@ arvind406はい、しかしそれは私の答えについて何を追加または尋ねますか?
user151019 2013

以前のコメントは間違ったウィンドウでコメントされました。謝罪。10.8 OSXにアップグレードした後、JDKとJREを7にアップグレードしました。質問をもう一度更新しました。親切に見て、どこか間違っているかどうか教えてください。このコマンド/usr/libexec/java_homeを実行すると、次のようになります/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home
arvind406

@Mark ..パスがbashrcファイルから取得されていないようです。端末から個別にJAVA_HOMEを設定した場合のみ、プロジェクトをビルドできました。なぜこれがこのように起こっているのでしょうか?何か案が ?
arvind406 2013

1

このリンクに従ってください:https ://stackoverflow.com/a/44564303/5005676 mvnスクリプトが表示された場合:コードはここで失敗します---

デバッグと修正の手順:

ステップ1:mvnスクリプト/Users/Username/apache-maven-3.0.5/bin/mvnを開きます(以下のようなlessコマンドで開きます:less /Users/Username/apache-maven-3.0.5/bin/mvn)

ステップ2:スクリプトで以下のコードを見つけます。

  if [ -z "$JAVACMD" ] ; then
  if [ -n "$JAVA_HOME"  ] ; then
    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
      # IBM's JDK on AIX uses strange locations for the executables
      JAVACMD="$JAVA_HOME/jre/sh/java"
    else
      JAVACMD="$JAVA_HOME/bin/java"
    fi
  else
    JAVACMD="`which java`"
  fi
fi

if [ ! -x "$JAVACMD" ] ; then
  echo "Error: JAVA_HOME is not defined correctly."
  echo "  We cannot execute $JAVACMD"
  exit 1
fi

ステップ3:JAVACMD変数が設定されていなかったために発生しています。したがって、エラーが表示されます。

注:修正するには

export JAVACMD=Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/bin/java

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

キー:永続的なものにしたい場合は、emacs.profileを開いてください

コマンドをポストし、Ctrl-x Ctrl-c(save-buffers-kill-terminal)を押します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.