web-dev-qa-db-ja.com

Java 7をMac OS Xにインストールしましたが、ターミナルはまだバージョン6を使用しています

OracleのWebサイトからダウンロードしたJDK 7u7をインストールしました。しかし、インストール後、端末はまだJavaバージョン6を表示しています

$Java -version
Java version "1.6.0_35"
Java(TM) SE Runtime Environment (build 1.6.0_35-b10-428-11M3811)
Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01-428, mixed mode)

なぜJava 7が表示されないのでしょうか。

答え:はい、問題は解決しました。答えは次のとおりです。私のターミナルには.bash_profileがあり、Javaホーム変数は1.6に設定されていることに気付きました

export Java_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home"

だから、これは私が新しいターミナルウィンドウを開くたびに問題を引き起こしている行です。この行を削除するだけで問題は解決します。それでも@alerootが言ったことに従う必要がありますが、それがうまくいかない場合は、.bash_profile(または.bashrc)設定ファイルを調べて、以前にJavaバージョンをエクスポートしたかどうかを確認してください。

383
Yang

これは、Java Preferencesペインに入力してJVM 7にのみフラグを立てる必要があるためです。

Java Preferences

Mac OS XでJava Preferencesペインを簡単にすばやく開くには、次のコマンドを使用してspotlightを呼び出すだけです。 +SPACE そしてシステム設定とタイプすればウィンドウの最後の行に表示されます。

64
aleroot

Oracleのインストーラは/Library/Internet Plug-Ins/JavaAppletPlugin.pluginの中にJavaを置きます。そしてそれは/usr/bin/Javaを上書きしません。だから、あなたが発行した場合

whereis Java

端末では、/ usr/bin/Javaを返します。 (これは、Appleの1.6バージョンである/System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/Javaを指しています)。

そのため、新しいJavaバージョンを使用する場合は、代わりに/usr/bin/Javaを指すように/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/Javaシンボリックリンクを置き換えます。

Sudo rm /usr/bin/Java
Sudo ln -s /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/Java /usr/bin
294
Ákos

JDK 7 をインストールすると、この問題は自動的に解決します。

Java Runtime Environment(JRE)だけでなく、コンパイラーやそのようなものを含むJava Development Kit(JDK)を必ず入手してください。

113
BrainO2

vi ~/.bash_profile

追加する

export Java_HOME=`/usr/libexec/Java_home -v 1.7`

これは/usr/bin/Javaリンクターゲットに、にインストールされた最新のJava 7パッケージを使うように伝えます。

/Library/Java/JavaVirtualMachines/

JDKの場合、1.7.0_17Java_HOMEは次のようになります。

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

注意:最近、この分野では、Mac OS XをAppels独自のシステム統合JavaパッケージからOracleベースのJavaパッケージに移行するための大きな変更がありました。上記の解決策は、Mac OS X 10.8.2以降ではうまく機能しています。

103
Uwe Günther

私の場合、問題はオラクルが以前とは別の場所にインストールしていたことです。

Oracleからダウンロード: http://Java.com/en/download/mac_download.jsp?locale=ja

  1. システム環境設定を調べて、正しくインストールされていることを確認します。

    • Spotlightを開くにはCommand-Spaceを押し、「システム環境設定」と入力してEnterキーを押す。
    • 一番下の行にあるJavaアイコンをクリックします。 Javaコントロールパネルが開いたら、[Java]タブ、[表示]の順にクリックし、インストールが正常に行われたことを確認します。そこに 'Path'も表示されています。それらが私のものと異なる場合は、それを以下のコマンドにサブルーチンできます。
  2. バージョンが予想通りであることを確認します(必要に応じてパスにsubを指定します)。

    /ライブラリ/ Internet\Plug-Ins/JavaAppletPlugin.plugin /目次/ホーム/ bin/Java -version

  3. / usr/bin/Javaから新しいインストールへのリンクを作成します。

    Sudo ln -fs /ライブラリ/ Internet\Plug-Ins/JavaAppletPlugin.plugin /目次/ホーム/ bin/Java/usr/bin/Java

  4. 健全性チェックあなたのバージョン:

    Javaバージョン

56
dale.hamill

私は、端末がMacにインストールされているバージョンと一致するようにJavaのバージョンを更新しないという同様の問題に遭遇しました。

設定されているJava_HOME環境変数に問題はありませんでした

私は一時的でやや苦痛だが実用的な解決策を思いついた。

あなたの中に.bash_profile行を追加してください:

export Java_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home"

(これは私のマシン上のパスですが、自分のものとは異なる場合があります。必ず自分のものを入手してください。パスは/ Library/Java/JavaVirtualMachines /まで一致する必要があります)

実行source ~/.bash_profile

私が述べたように、これは一時的なバンドエイドソリューションです。Javaホームパスはハードコーディングされているからです。最新のものを取得するようにパスを設定する方法は実際にはありません。それは、Appleがすでにターミナルに対して行っていることであり、AppleのJava_home環境変数が更新されていないことです。

32
Derek

El Capitan以降、新しい "rootless"ポリシーが導入されたため、/usr/bin/Javaシンボリックリンクを削除することは困難です。

したがって、私は単に最新のJavaバージョン(私の場合は/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin)へのパスを.bashrcファイルのPATHに追加しました。

# Use latest Java version
export PATH=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH

現在のセッション用に.bashrcファイルをリロードするには、シェルでsource ~/.bashrcを実行します。 .bashrcファイルを変更する前に開始されたセッションに対してのみこれを行う必要があります。

シェルでJavaを使用すると、最新バージョンが使用されます。

27
TabeaKischka

私にとって最も簡単でわかりやすい方法は、ここで説明しているように自作を使ってJavaをインストールすることです。

https://stackoverflow.com/a/28635465

brew update
brew cask install Java
21

基本的な問題:/usr/bin/Javaは最初にOSX自身によって提供されたものを指しています(/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/Java)これはJDKインストーラによってダウンロードされたものを指す必要があります。以下の手順はOSX 10.10.4 Yosemite用です。

  • 「システム環境設定」 - >「Java」の順に開きます。 Javaウィンドウが開きます。
  • 上部の[Java]タブをクリックします。 「表示」ボタンをクリックしてください。
  • 次のように[Java Runtime Environment Settings]タブが開きます。 JRE Settings tab
  • Path項目をダブルクリックしてパスをコピーします(cmd + c)。これは、JDKインストーラ/アップデータによってインストールされた最新のものです。私の場合、パスは/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/Javaでした
  • ターミナルを開きます。このステップでは、システムのJavaバイナリを、前のステップで発見した最新のバイナリにポイントします(シンボリックリンク、ln -sコマンド)。以下のコマンドを実行してください。

Sudo ln -s /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/Java /usr/bin/Java

それでおしまい。確認するには、端末上でJava -versionを実行するだけです。インストール/アップデートした最新バージョンが出力されるはずです。

12
Aswin Kumar

あなたの端末で以下のコマンドを実行することができます。

export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"

そしてこれは古いJavaを新しいものに置き換えます。

11
Amulya Kashyap

やった

export Java_HOME=`/usr/libexec/Java_home`

そしてそれは私のJava 8の問題を修正しました。

前:

Java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01, mixed mode)

後:

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)
10

このツールを見てみることをお勧めします Jenv

これにより、インストールしたJVMをいつでも切り替えることができます。

単純に:

jenv global Oracle-1.7

その後、テスト目的のために:

jenv global Oracle-1.6

そして、もっとたくさんのコマンドがあります。

7
TitiMoby

http://www.Java.com/en/download/faq/Java_mac.xml は理解するのに良い場所です、AppleはJavaのサポートをやめています、なぜJava Preferencesはもう存在せず、System_Preferencesに頼っているのですか=> Java => OracleのJava 7がインストールされている場合はJava。

7
revher

これはナッツです!何もインストールしないインストーラをOracleはどのように提供しますか。

とにかく私にとってそれはそれでした:

Sudo rm /usr/bin/Java
Sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/bin/Java /usr/bin/Java

1.8.0_31はインストールしたJavaのバージョンです。

6
Kevin Parker

Java_HOMEパスをハードコーディングするのは最善の方法ではありません。 /usr/libexec/Java_homeユーティリティは、Mac OSX Lion 10.7.5とJDK 1.7.0_13で動作します。そのmanページによると、それはAppleの古いJava Preferencesペインで使われることを意図しています、しかしそれはOracleによって提供された置き換え(Java Control Panel)と共に働いているように見えます。たとえば/usr/libexec/Java_home -Vを実行すると、私のマシンにインストールされているすべてのJDK(1.6。*と1.7。*の両方)が一覧表示されます。

そのため、他のスレッドで議論されているように(例: OSX上でJava_HOMEに何を設定すべきですか )、.bash_profileに次の行を追加することをお勧めします。

export Java_HOME=$(/usr/libexec/Java_home)
6
zagyi

簡単な解決策

export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"
5
Mick

あなたのマシンに複数のJavaバージョンがあり、実行時に動的にそれを選択したい場合、つまり、私の場合は、2つのバージョンがあります

ls -la /Library/Java/JavaVirtualMachines
drwxr-xr-x  3 root  wheel    96B Nov 16  2014 jdk1.7.0_71.jdk/
drwxr-xr-x  3 root  wheel    96B Mar  1  2015 jdk1.8.0_31.jdk/

/ etc/profileの内容を変更することでそれらを変更できます。ファイルの最後に次の2行を追加(または変更)するだけです。

export Java_HOME=YOUR_Java_PATH/Contents/Home
export PATH=$Java_HOME/bin:$PATH

私の場合は、使用したい場合は次のようになります。

Java 7:

export Java_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
export PATH=$Java_HOME/bin:$PATH

Java 8:

export Java_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home
export PATH=$Java_HOME/bin:$PATH

ファイルを保存した後、source /etc/profileを実行してください。これは私がそれに応じて最初と2番目のオプションを使用したときの結果です。

Java 7:

Java -version
Java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)

Java 8:

Java -version 
Java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)

Javaフォルダが別の場所にある場合も、プロセスは似ています。

4
nxhoaf

Jreではなくjdkをインストールしてみることができると思います。 jdkをインストールすると、/ usr/bin/Java内のJavaが置き換えられ、すべてのライブラリが正常に動作します。

3
ParaDevil

.bash_profileが変更を反映していないために起こっています。それを反映するには、単に次のコマンドを使用してください

$ source .bash_profile
1
Raghav Sharma

このコマンドを実行して、/ Library/Internet Plugins /にあるJavaのバージョンを見つけることができます。

defaults read /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Info.plist CFBundleVersion
1
Hefewe1zen

私はYosemiteを再インストールし、ターミナル(Java -version)と(javac -version)でJavaのバージョンをクロスチェックすることでこの問題を解決しました。 )libray> Java> javavirtualmachine>あなたのjavac現在のバージョン。Javaホームにアドレスを指定する必要があります。

0
AJAY

インストールされているJDKのバージョンを確認します。

$ ls  /Library/Java/JavaVirtualMachines/
jdk-11.0.2.jdk  jdk1.8.0_91.jdk

~/.bashrcエクスポートJava_HOMEでバージョンを指定します。

if [ -e /usr/libexec/Java_home ]; then
  export Java_HOME=$(/usr/libexec/Java_home -v 11)
fi

Bashrcファイルを入手すると、Javaのバージョンが更新されます。

$ Java -version
Java version "11.0.2" 2019-01-15 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.2+9-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.2+9-LTS, mixed mode)
0
Miguel Mota

Homebrewがインストールされている場合は、 Java-switcher をインストールして、Javaのデフォルトバージョンをより迅速に変更できます。

brew tap andycillin/tap
brew install Java-switcher

そうすれば、デフォルトのJavaバージョンを切り替えるのに1つのコマンドだけを使用できます。

Java-switcher 1.7

または

Java-switcher 10
0
Andy Tran

Oracleサイトから分散JDK DMGを介してインストールすると、すべて自動更新されます。私は(El Capitanで)System Preferences > Java doの更新を通して更新しているのを見ましたが、それはコマンドラインに反映されません。 DMGを介したインストールがその仕事をします。

0
Santanu Karar

私はこの問題に直面していないので、私は慌てています -

これを試してください。

ソフトリンク "Java_home"はどこを指していますか。

ls -lrt /usr/libexec/Java_home

出力:(停止)lrwxr-xr-x Java_home - > /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/Java_home

** ls -lrt /System/Library/Frameworks/JavaVM.framework/Versions My MACで次のファイルが生成されます。

 lrwxr-xr-x CurrentJDK ->
 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents**

 lrwxr-xr-x   Current -> A
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.6.0 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.6 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.5.0 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.5 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.4.2 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.4 -> CurrentJDK

これに基づいて、さらに進むためのヒントが得られるでしょうか。

0
user1428716

私はこの問題をSudo rm /usr/bin/Javaで解決しました

そして私は最後のJava SE Runtime Environmentをダウンロードしてインストールしました: http://www.Oracle.com/technetwork/Java/javase/downloads/index.html

私はSudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/bin/Java /usr/bin/Javaを手に入れたのでOperation not permittedは私のために働きませんでした。 El Capitanは特定のシステムディレクトリを "rootless"モードで保護します(System Integrity Protectionとも呼ばれます)。それはmacOS Sierra、そしておそらく近い将来の新しいmacOSバージョンに適用可能です。

0
Charles Hamel