Java仮想マシンを設定するものは何ですか?


0

私のJava環境がどのようにセットアップされているのか理解していません。Javaの複数のバージョンがインストールされている場合、Java依存アプリケーションを起動するときに正しいバージョンがどのように選択されますか?

AppleのオリジナルのJavaバージョン1.6とSunの最新の1.8の両方をインストールしています。

入力するjava -version

java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)`

ls -l /usr/bin/javaAppleの1.6 Javaインストールが指すlrwxr-xr-x 1 root wheel 74 Jun 16 2014 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java場所を生成しCurrentます。


あなた/usr/bin/javaはまだJava 6であるように見えますが、あなた.bashrcまたは.bash_profileJava 8のインストーラは元のパスの前にパスを追加しているので、javaデフォルトで実行するとJava 8バージョンが選択されます。
両手利き

which javaを生成する/usr/bin/javaので、問題はパス変数だとは思わないでしょう。また、シェルはアプリケーションが起動される環境とは無関係であると聞きました。そのため、私のパスはすべて古いAppleバージョンを指していますが、ブラウザーはすべてSunの1.8インストールを正常に使用します。
キース

@Keith / usr / bin / javaは、Javaコントロールパネルで制御されるWeb Javaでは使用されません
マーク

回答:


1

/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java内のjava実行可能ファイルは、javaコンパイラなどを実行するだけの実行可能ファイルではありません。/usr/libexec/java_homeを使用して実行可能ファイルを見つけるラッパーです。

AppleのJava 6は/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/binにあります

実行/usr/libexec/java_home -Vして、インストールしたすべてのJava VMを確認します。


0

現在のターミナルセッションで、/usr/libexec/java_home -v 1.8see java_home --helpオプションを使用してJVMを選択でき ます。

GUIアプリケーションの場合、JAVA_HOMEを環境変数として設定する必要があります。Mac OSでの環境変数の設定については、StackOverflow でのMac OS Xの環境変数で説明されています~/.launchd.conf非推奨であることに注意してください:man launchd.conヨセミテで

... launchd.confは、システムによってもはや尊重されません。...


あなたの回答も参考になったので、複数の回答を選択できたらと思います。残念ながら、実行可能ファイルは本当にラッパーであるという@Markの説明は、私の質問に対する直接的な答えでした。あなたが指し示した環境変数も非常に役立ちます。ありがとうございました。
キース
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.