web-dev-qa-db-ja.com

「/ usr / bin / Java / bin / Java」で実行可能ファイルが見つかりません(-1)

Mac osx 10.7.3でJavaに哀れな問題があります。以前はインストールして正常に動作していました。時間、私は次のようなエラーが発生しています

Unable to locate an executable at "/usr/bin/Java/bin/Java"

端末で「javac」または「Java」を実行しようとするたびに。

echo $PATHは次のような出力を提供します。

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Users/sabya/Documents/Play_Framework/play-2.0:/usr/X11/bin:/usr/local/git/bin:/usr/local/mysql/bin

私の.bash_profileは次のようになります:

alias start_mysql="/Library/StartupItems/MySQLCOM/MySQLCOM start"
alias stop_mysql="/Library/StartupItems/MySQLCOM/MySQLCOM stop"
export Java_HOME=/usr/bin/Java

which Javaの出力

/usr/bin/Java

それは長い間私を悩ませ、Javaをアンインストールしてインストールしましたが私の運を助けませんでした。

私はMacの初心者で、この問題を解決するのに助けが必要です。

Googleでこの質問を投稿する前にSOFを確認しましたが、私の問題に固有の何かは見つかりませんでした。

ありがとう

サビヤ

44
Sabya

確かに、export Java_HOME=/usr/bin/Javaは犯人です。このenv変数は、JDKまたはJREインストールディレクトリを指している必要があります。グーグルは、MacOS Xの最適なオプションはexport Java_HOME=/Library/Java/Home

89

Java_HOMEJava実行可能ファイルの名前ではありません。ただし、ディレクトリの場合、Javaがインストールされました。実行可能ファイルは$Java_HOME/bin/Java

whichコマンドはそこでは役に立ちません。 Javaホームを提供しませんが、ほとんどの場合、これはJava非常に異なるディレクトリにインストールされたラッパーまたはシンボリックリンクです。

11
Anony-Mousse
export Java_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home

なぜなら:

 $ find /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home -name Java*
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/Java
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/javac
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/javadoc
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/javafxpackager
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/javah
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/javap
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/javapackager
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/javafx-src.Zip
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/bin/Java
10
abc

私は同じ問題を経験しており、この記事を読んだ後、Java_HOMEの定義.bash_profile。実際には:

export Java_HOME=$(which Java)

Anony-Mousse が説明しているとおり、それが実行可能ファイルです。変更後:

export=/Library/Java/Home

問題を修正しましたが、プロファイルファイルでそのように評価されている理由を理解することは依然として興味深いです。

0
Bruno Ripa