OSX10.7 に jdk1.7 をインストール

Macbook Air にデフォルトで入っていたのは 1.6 だったのだけど、
所用で 1.7 が必要になったのでそっちを新しく入れてみた。
JavaOSX も全然勝手が分かっていないのでけっこう手こづったので、
とりあえずこれやれば入るよ!という手順を以下に残しておく。

  1. 以下から最新の jdkdmg をダウンロード
  2. dmg を解凍後、jdk を /Library/Java/JavaVirtualMachines/ にコピー
    • JavaVirtualMachines ディレクトリはあるはずだけどなければ作っておく
  3. Spotlight で Java Preference を起動
    • 起動できれば何でもいい。自分はまだよく分かってなくてこの方法しか知らない…。
  4. JRE 6 のチェックをはずして JDK 7 にだけチェックが入った状態にする



以上の手順を踏めば、コンソールで java -version したときに openjdk version 1.7 が表示されるはず。

/Users/gan2% java -version
openjdk version "1.7.0-u4-b13"
OpenJDK Runtime Environment (build 1.7.0-u4-b13-20120224)
OpenJDK 64-Bit Server VM (build 23.0-b16, mixed mode)

その他

OSX では /System 以下はいじらないものらしい

なので、/Library/Java/JavaVirtualMachines/ の頭に /System がついた
/System/Library/Java/JavaVirtualMachines/ ってディレクトリがあるのだけど、
こっちに間違って入れないように注意する。
たぶん Windows でいう system フォルダみたいなものなのだろう。

OSX では最初 root にパスワードが設定されていないので sudo が使えない

/Library/Java/JavaVirtualMachines/ に jdk1.7 入れるときにうまくいかなくて困った。
コピーする前に、sudo passwd root して、パスワードを設定しておけば OK.

OSX では Java ライブラリの jar は /Library/Java/Extensions/ 以下に置く

なんでそういう仕様なのか知らないけど、Java では javac を実行するディレクトリに jar を置いておいても読んでくれない。
Windows だと、環境変数 CLASSPATH にカレントディレクトリのパスを追加することでこの問題に対処できるが、
OSX だと CLASSPATH は使えないらしいので、上記の所定の位置に jar を置くようにするみたい。