(これがSUで行われるべきかどうかわからない...移行は確かにオプションですが、より多くのプログラマーがここで質問を読むので、ここに進みます)。
Mac OS X 10.8.4を実行していますが、AppleのJDK 1.6.0_51とOracleのJDK 1.7.0_25をインストールしています。最近、Oracleの1.8プレビューJDKを必要とするいくつかのプレリリースソフトウェアにインストールしました。ここで、/ usr / libexec / java_homeを実行すると、次のようになります。
$ /usr/libexec/java_home -V
Matching Java Virtual Machines (4):
1.8.0, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
1.7.0_25, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home
1.6.0_51-b11-457, x86_64: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.6.0_51-b11-457, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
すごい。
ただし、実行中:
$ java -version
戻り値:
java version "1.8.0-ea"
つまり、Javaのデフォルトバージョンは現在プレリリースバージョンであり、一部の「通常の」パッケージ(私の場合はVisualVM)が壊れています。
JAVA_HOME
アプリケーションを起動すると、コマンドラインから起動した場合でも(例$ open /Applications/VisualVM.app
)環境変数が無視されるため、設定できません。
それで、JVMの順序設定をグローバルに設定できる編集可能なファイルはありますか?
(Java設定パネルを起動するように言わないでください。これは機能しません。便利なものは何も含まれておらず、インストールした4つのJVMの1つしかリストされていません。)
更新:
Oracle JVMはにあります/Library/Java/JavaVirtualMachines
。JDK 1.8ディレクトリの名前をjdk1.8.0.jvm.xyz
変更しても何も変わりません。java_home
それでも適切な場所にあり、/ usr / bin / javaを実行しても1.8 JVMが実行されます。これは、synlinksなどの問題ではありません。
同様の質問への回答
一方で、この回答 JAVA_HOMEによってピックアップされてからのJavaのバージョンを削除しますハックに相当するものの提供は、それはまだこの問いに答えるしませんどのように JAVA_HOMEがデフォルトを選択し、ユーザーができるかどうかを非破壊的に設定します。
/usr/bin/java
を指し/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
ます。Versions
ディレクトリは、1.8.0 JDKへのシンボリックリンクが含まれていません。代わりに、それは親切というディレクトリが含まにポイントを。「JAVA_HOMEではありませんそれはというサブディレクトリがある。持っているコマンドを、それは、知っている-何をして不透明なユニバーサルバイナリで、私はそれを使用しています疑い。使用するJVMを決定する、など。A
Current
A
Commands
java
java_home
/usr/bin/java
は単なるシンボリックリンクです