背景
JPCERT/CC からの 注意喚起にて、Java SE のクリティカルパッチアップデートがあることを知る。Java SE 6 Update 26 にアップデートする必要があるようだ。環境
現在の環境は、以下の通りです。- Mac OS X version 10.6.7
現状確認
JPCERT/CC によると、以下のページで Java のバージョンの確認が出来るようだ。Java のバージョンの確認
実際に確認してみたところ、以下のページが表示された。
Mac をお使いの場合: お使いの Mac に最新バージョンの Java がインストールされているかどうかを確認するには、アップルメニューのソフトウェアアップデート機能を使用します。
とのことだが、ソフトウェアアップデート機能を使用しても何の更新も起こらない。
iTerm2 から以下のコマンドを入力すると、古いバージョン(1.6.0_24)のままであることが分かる。
$ java -version
対策
以下の自分のブログの記事を参考にして、"Java for 10.6 Update 5" をインストールした。自分のための日記: Eclipse で rt.jar のソースを見る方法
インストールすると、/Library/Java/JavaVirtualMachines に 1.6.0_24-b07-334.jdk の他に 1.6.0_26-b03-377.jdk がインストールされていることが分かる。
ついでだから、上記の自分のブログを参考に、Eclipse で使う JRE を 1.6.0_26 の JRE に変更しておいた。
因みに、1.6.0_24-b07-334.jdk は必要なさそうというか、以下の記事を参考にすると「旧バージョンの Java は削除することを推奨する」とのことだったので削除した。
JDK および JRE 6 Update 26 が公開されています - 特に重要なセキュリティ欠陥・ウイルス情報
1.6.0_24-b07-334.jdk を削除するとどうでしょう。java -version とコマンドを入力すると、バージョンが 1.6.0_26 となっていることを確認することが出来ました。
感想
あれ?おかしくない?java コマンドは /usr/bin/java にあり、/usr/bin/java は /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java へのシムリンクになっている。$ which java /usr/bin/java $ ls -l /usr/bin/java (略)java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java の親フォルダが /Library/Java/JavaVirtualMachines/1.6.0_26-b03-377.jdk/Contents/Home/bin へのシムリンクになっているのかと思ったが、そうではないようだ。
「現状確認」でも確認したように、Mac の場合、「最新バージョンの Java がインストールされているかどうかを確認するには、アップルメニューのソフトウェアアップデート機能を使用」するしかないようなので、ソフトウェアアップデートによって Java を最新の状態にすることでデフォルトの Java が最新の状態になるのかと思っていた。しかし、開発版の Java を入れることで Java が最新になった。
自分でも何がなんだか分からない。
Mac OS X 上にある java コマンドを探すと
$ find / -name java -type f 2>/dev/null /Library/Java/JavaVirtualMachines/1.6.0_26-b03-377.jdk/Contents/Home/bin/java /System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java /usr/share/file/magic/java
と表示される。それぞれのコマンドで java -version を実行してみた。
とする。
- /Library/Java/JavaVirtualMachines/1.6.0_26-b03-377.jdk/Contents/Home/bin/java
- /System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java
- /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java
- /usr/share/file/magic/java
4. は、file コマンドが使う magicfile と呼ばれるデータベースのようだ。 【参考】 2005年4月 | 今日の一行 | column | OSS-Web
- java version "1.6.0_26"
- java version "1.6.0_26"
- java version "1.6.0_24"
- zsh: permission denied: /usr/share/file/magic/java
という訳で、システムにインストールされている Java で 1.6.0_26 のものは、
- /Library/Java/JavaVirtualMachines/1.6.0_26-b03-377.jdk/Contents/Home/bin/java
- /System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java
で、1.6.0_24 のものは、
- /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java
だった。
「アップルメニューのソフトウェアアップデート機能を使用」することで、/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java のバージョンが 1.6.0_26 になるのではないか、と信じている。
0 件のコメント:
コメントを投稿