最新のJavaFXでプログラミングをしたいのですが、Java8が必要です。私はIntelliJ 13 CEとMac OS X 9 Mavericksを使っています。OracleのJava 8インストーラーを実行したところ、ファイルは以下の場所にあるようです。
/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk
にあるようですが、以前のバージョンは
/System/Library/Java/JavaFrameworks/jdk1.6....
最新のインストーラーがなぜこれを /System/Library
ではなく /Library
に置くのかはわかりません(何が違うのかも)。しかし、/usr/libexec/java_home
には1.8が見当たらず、現在のjavaのバージョンを設定する方法について見つけたすべての投稿は機能しません。シンボリックリンクを追加して、1.8が/System/Library...
のパスにあるように見せかけようとしましたが、うまくいきません。また、/usr/libexec/java_home -V
では相変わらず古いJava 1.6しか表示されません。
皮肉なことに、システム環境設定の下にある "Java" コントロールパネルには、Java 1.8 しか表示されていません。
なぜオラクルのインストーラはJava 1.8を本来の場所に置かないのでしょうか?また、どうすればこの問題を回避できるのでしょうか?
Oracle社は、Javaのインストールや設定を簡単に行うことができないという欠点がありますが、Homebrewを使えば、最新のOpenJDK(Java 13)をインストールすることができます。
brew cask install java
古いバージョン(一般的にはJava 8)に依存する多くのユースケースでは、AdoptOpenJDKプロジェクトにより、追加のステップで可能になります。
brew tap adoptopenjdk/openjdk
brew cask install adoptopenjdk8
既存の Homebrew ユーザーは、Error:Cask adoptopenjdk8 exists in multiple taps
というエラーが発生する可能性がありますが、これは以前の異なる命令による回避策のためです。これは、brew cask install adoptopenjdk/openjdk/adoptopenjdk8
で場所を完全に指定することで解決できます。
私は、Java 7と8の両方を使用するアプリケーションを持っており、常にその間を行き来しなければなりません。
私はJohanが書いたこのスクリプトを使っています。
http://www.jayway.com/2014/01/15/how-to-switch-jdk-version-on-mac-os-x-maverick/
これで、起動時に設定することも、後からスクリプトを呼び出すこともできるようになりました。
JDK for Macをインストールします。
Java 7をインストールします。
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
Java 8
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
私も同じ問題を抱えていました。しかし、少しずつ試行錯誤した結果、問題を解決することができました。
sudo rmで1.6 sdkを削除して、Macを再起動してみてください。
.dmgファイルを再度ダウンロードしてください。ダウンロードした.dmgインストーラーが壊れている可能性があります。再度インストールしてください。
インストール後、以下のコマンドを実行してください。jdk 8のパスが表示されます。 /usr/libexec/java_home -v 1.8
また、実行するとjdk 8のフォルダが表示されます。ファイルは隠れているかもしれません。 ls -al /Library/Java/JavaVirtualMachines/...