Javaは、macOSの最新バージョンのオプションパッケージです。
しかし、インストールすると、JAVA_HOME環境変数が正しく設定されていないように見えます。
Javaは、macOSの最新バージョンのオプションパッケージです。
しかし、インストールすると、JAVA_HOME環境変数が正しく設定されていないように見えます。
回答:
JavaのオプションパッケージまたはOracleのJDK、あなたに次の行の1を追加し、インストール〜/ .bash_profileをファイルには、それに応じて環境変数を設定します。
export JAVA_HOME="$(/usr/libexec/java_home -v 1.6)"
or
export JAVA_HOME="$(/usr/libexec/java_home -v 1.7)"
or
export JAVA_HOME="$(/usr/libexec/java_home -v 1.8)"
更新:Jilles van Gurp 応答に基づく-vフラグが追加されました。
/usr/libexec/java_home
ディレクトリではなく実行可能ファイルです。現在設定されているJAVA_HOMEを出力し、実際には変更しません。それがJava Preferencesアプリの目的です。私の場合、壊れているように見え、実際にはJVMを正しく変更しません。1.7 JVMがリストされていますが、実際にの出力を変更せずに、必要なすべてをトグル/アントグル&ドラッグアンドドロップできます/usr/libexec/java_home
。
Lion on Oracleから1.7.0 u6をインストールし、それを設定のデフォルトとして設定した後でも、Apple 1.6 Javaホームに戻りました。実際に機能する唯一の修正は、JAVA_HOMEを手動で設定することです。
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_06.jdk/Contents/Home/
少なくともこの方法でコマンドラインから実行すると、1.7が使用されます。/usr/libexec/java_home
まだ1.6を主張しています。
更新:OSXのコマンドラインからJavaを理解するすると、これがどのように機能するかについてのより良い説明があります。
export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
それを行う方法です。これを1.8に更新しても問題ありません。
私にとって、Mountain Lion 10.8.2では、最も投票されたソリューションは機能しません。Oracleを介してjdk 1.7をインストールし、homebrewからmavenをインストールしました。
私の解決策は、私も自家製からインストールしたhadoopのhadoop-env.shファイルからです。以下の文を〜/ .bash_profileに追加すると、機能します。
export JAVA_HOME="$(/usr/libexec/java_home)"
このソリューションは、OracleからJava 1.8がインストールされたOS X Yosemiteでも機能します。
export JAVA_HOME="$(/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home)"
上記の答えのどれも私を助けませんでした。私はすべての答えが古いものだと思いますOS X
OS X Yosemite 10.10の場合、次の手順に従います
お好きなテキストエディタを使用して開きます。 ~/.bash_profile
//This command will open the file using vim
$ vim ~/.bash_profile
ファイルに次の行を追加して保存します(vimの場合は「:」の後に続きます)。
export JAVA_HOME=$(/usr/libexec/java_home)
次に、ターミナルで次の2つのコマンドを入力して出力を確認します。
$ source ~/.bash_profile
$ echo $JAVA_HOME
2行目では、.bash_profile
ファイルの内容を更新しています。
Java 9といくつかのきちんとしたエイリアスの更新。
で.bash_profile
:
export JAVA_HOME8=`/usr/libexec/java_home --version 1.8`
export JAVA_HOME9=`/usr/libexec/java_home --version 9`
最新バージョンの場合はそうで9
あり、そうではないことに注意してください1.9
。
アクティブJavaを設定します。
export JAVA_HOME=$JAVA_HOME8
export PATH=$JAVA_HOME/bin:$PATH
異なるバージョンを切り替えるための追加のエイリアス:
alias j8='export JAVA_HOME=$JAVA_HOME8; export PATH=$JAVA_HOME/bin:$PATH'
alias j9='export JAVA_HOME=$JAVA_HOME9; export PATH=$JAVA_HOME/bin:$PATH'
端末でテスト:
% j8
% java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
% j9
% java -version
java version "9"
Java(TM) SE Runtime Environment (build 9+181)
Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)
編集:Java 10のアップデート
export JAVA_HOME10=`/usr/libexec/java_home --version 10`
alias j10='export JAVA_HOME=$JAVA_HOME10; export PATH=$JAVA_HOME/bin:$PATH'
編集:Java 11のアップデート
export JAVA_HOME11=`/usr/libexec/java_home --version 11`
alias j11='export JAVA_HOME=$JAVA_HOME11; export PATH=$JAVA_HOME/bin:$PATH'
それは期待するため、上記の、AmazonのEC2のツールで私のために動作しませんでしbin/java
などの下にJAVA_HOME
。/System/Library/Frameworks/JavaVM.framework/Home
働いた。
OS Xの場合:
export JAVA_HOME=`/System/Library/Frameworks/JavaVM.framework/Versions/Current/commands/java_home`
Mac OS X Lionでは、visualgcを実行するように設定するために、以下を使用しました。
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home
/usr/libexec/java_home
どう違うのですか?コマンド/ usr / libexec / java_homeは/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
以下は私のために働いた。Java 8がインストールされたOSX YosemiteでZSHを使用しています。
次のコマンド/usr/libexec/java_home
は、JDKホームへのパスを出力します。
/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
あなたの~/.zshrc
、
export JAVA_HOME = "/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home"
より良い(よりアップグレード可能な)方法は、以下を使用することです:
/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
bin
ホームの下にあるため、これはAWSでも機能するはずです。
1.7.0_21-b12などの新しいOracle JVMはここにインストールされるようです。
/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
/usr/libexec/java_home
ツールはこれらのJavaバージョンに対してエラーを返します。
macOS Mojave 10.14.1およびJAVA 11.0.1の場合、プロファイルを次のように設定しました
export JAVA_HOME=$(/usr/libexec/java_home)
これを確認するためにターミナルにキー入力します:
$JAVA_HOME/bin/java -version
java version "11.0.1" 2018-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)
私のアプローチは:
.bashrc
export JAVA6_HOME=`/usr/libexec/java_home -v 1.6`
export JAVA7_HOME=`/usr/libexec/java_home -v 1.7`
export JAVA_HOME=$JAVA6_HOME
# -- optional
# export PATH=$JAVA_HOME/bin:$PATH
これにより、J6とJ7の切り替えが非常に簡単になります。
私はそれを私のMacbook airの正確なパスに明示的に設定しなければなりませんでした。
続くステップ:
echo $JAVA_HOME
、使用して検索しようとしない場合、(それはパスを紹介します設定の場合)sudo find /usr/ -name *jdk
sudo nano ~/.bash_profile
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
echo $JAVA_HOME
Java 8を搭載したMacbook AirでMACOS MOJAVE-10.14.2(18C54)を実行しています。
Mac OS X 10.9の場合、Oracleから最新バージョンのJREをインストールしてから、JAVA_HOMEを/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Homeにリセットしました。
より良い方法があると確信していますが、私を立ち上げました。
hughsmac:〜hbrien $ echo $ JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home
OSX Yosemite、ZSH、およびJava SEランタイム環境8、私はしなければなりませんでした:
$ sudo ln -s /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands /System/Library/Frameworks/JavaVM.framework/Versions/Current/bin
〜/ .zshrcでJAVA_HOMEを
export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/Current"
Mac OSをアップグレードした後も同じ問題が発生しました。
cmd> vi〜/ .bash_profile
JAVA_HOMEの行を追加/更新します:export JAVA_HOME = "/ Library / Java / JavaVirtualMachines / jdk1.7.0_15.jdk / Contents / Home"
cmd> source〜/ .bash_profileまたは新しいターミナルを開く
jdkのバージョンは異なると思うので、/ Library / Java / JavaVirtualMachines /にあるバージョンを使用してください
Mac OS X(Yosemite)でJDKの複数のバージョンが必要な場合は、それらを自動的に切り替えるためのスクリプトを追加すると役立つ場合があります。
〜/ .bash_profileを編集して以下を追加します:
function setjdk() {
if [ $# -ne 0 ]; then
removeFromPath '/System/Library/Frameworks/JavaVM.framework/Home/bin'
if [ -n "${JAVA_HOME+x}" ]; then
removeFromPath $JAVA_HOME
fi
export JAVA_HOME=`/usr/libexec/java_home -v $@`
export PATH=$JAVA_HOME/bin:$PATH
fi
}
function removeFromPath() {
export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;")
}
setjdk 1.7
スクリプトが行うことは、最初にPATH内の他のJDKバージョンを削除して、それらが新しいJDKバージョンに干渉しないようにすることです。次に、インストールされているJDKバージョンをリストするコマンドである/ usr / libexec / java_homeを巧妙に使用します。-v引数は伝えJAVA_HOMEを例1.7のために、付属のバージョンでJDKのパスを返すように。また、新しく見つかったJAVA_HOMEディレクトリのbinディレクトリを指すようにPATHを更新します。最後に、単純に関数を実行して
setjdk 1.7
これにより、1.7ブランチの最新のインストール済みJDKバージョンが選択されます。特定のバージョンを選択するには、単に実行することができます
setjdk 1.7.0_51
代わりに。/ usr / libexec / java_home -Vを実行して、バージョンの選択方法の詳細を取得します。
PS 保存後に〜/ .bash_profileを読み込むことを忘れないでください 。
この回答は、ライオンではなくマウンテンライオンに関連しています。AWSコマンドラインツールでこれを行う必要がありました。AWS docsによると、実行するとwhich java
戻ります/usr/bin/java
。
だから、私JAVA_HOME=/usr
は私の中に設定.bashrc
。
どうやら、/usr/bin/java
へのシンボリックリンクです/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
それはすべてを機能させるです。
更新
以下のコメントで述べたように、このJAVA_HOME
値は、JAVA_HOME
環境変数がAWSコマンドラインツール以外のもので使用される場合の理想的なソリューションではありません。ただし、ドキュメントに記載されているように、AWSコマンドラインツールでは問題なく機能します。
netbeans.conf
ファイルに1.8 jdkバージョンのjava_homeを設定するだけです。
/Applications/NetBeans/NetBeans 8.2.app/Contents/Resources/NetBeans/etc/netbeans.conf
コメント行のコメントを外します:
netbeans_jdkhome="path/to/jdk"
私の場合、1.8 jdkへのパスを設定します。
netbeans_jdkhome="/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home"
このアプローチでは、Mac OSでいくつかのjdkバージョンを使用できます
Macユーザー用。Java 8を追加する必要があります
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
# JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
Java 6:
export JAVA_HOME=`/usr/libexec/java_home -v 1.6`
# JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home