OS X LionへのJava SE 7のインストールと、NetBeans7.2がSE 7で起動出来なかった問題について

Mac OS X Lionは標準でJava SE 6 が導入されています。これをSE 7へバージョンアップしました。
それに加えて、Java製アプリであるNetBeans7.2をSE 7で動かすまでのレポートです。

Oracle、ゼロデイ攻撃発生した「Java」の脆弱性に対応 –Security NEXT
少し前ですが、ネットニュースなどでJavaの脆弱性が発見され、数日前にセキュリティパッチがOracleからリリースされた模様です。

Java SE Downloads –Oracle

Java SE 7の導入

私のコンピュータのJava のバージョンが6のままだったこともあり、この際なので7に上げることにしました。無事インストールも終わり、設定準備(Macの場合Java Preferences.appで優先度を変更することにより設定可能)も完了しました。そこでNetBeansを立ち上げたのですが・・・

NetBeans7.2 スクリーンショット

なぜかJava SE 6で動いている模様。通常なら上記の設定で切り替わるはず(切り替わって欲しいですよね?)。念のためコマンドラインで下記のようにJavaのバージョンを調べてみました。

java -version

Picked up _JAVA_OPTIONS: -Duser.language=en -Dfile.encoding=UTF-8
java version "1.6.0_33"
Java(TM) SE Runtime Environment (build 1.6.0_33-b03-424-11M3720)
Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03-424, mixed mode)

コマンドラインでもJavaのバージョンが6のままでした。
私はJavaに関してはド素人なのでそれも踏まえてちょっと調べました。どうやらバージョンを選択する方法があるようで・・・。

Mac OS X 開発環境構築手順:Java実行環境(jdk6)インストール –Shinya’s Daily Report
(上記サイトでは SE6ですがSE7でも同じです)
.bash_Profileに下記を追記。

export JAVA_HOME=$(/usr/libexec/java_home)

source .bash_Profile

・・・しかし、バージョンに変化なし。こうなったら徹底的に。

ls -la /usr/libexec/
で調べてみると

java_home -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home
となっている。これが本体。

↓ここに各種バージョンが収められていることを確認。
/System/Library/Frameworks/JavaVM.framework/Versions/

ls -la /System/Library/Frameworks/JavaVM.framework/Versions/

drwxr-xr-x  11 root  wheel  374  6 13 19:11 .
drwxr-xr-x  11 root  wheel  374  6 13 19:11 ..
lrwxr-xr-x   1 root  wheel   10  6 13 18:02 1.4 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10  6 13 18:02 1.4.2 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10  6 13 18:02 1.5 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10  6 13 18:02 1.5.0 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10  6 13 18:02 1.6 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10  6 13 18:02 1.6.0 -> CurrentJDK
drwxr-xr-x   8 root  wheel  272  6 13 19:11 A
lrwxr-xr-x   1 root  wheel    1  6 13 18:03 Current -> A
lrwxr-xr-x   1 root  wheel   59  6 13 18:02 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents

なんとさっきインストールしたはずの7がありません。なぜ?

また色々調べてみる。

MacでJava7を使う。–KRAKENBEAL RECORDS
どうやらJava SE 7のインストール場所は下記らしい。

/Library/Java/JavaVirtualMachines/

なんなんでしょ?統一して欲しかったわー。インストール場所を調べてみると、

ls -la /Library/Java/JavaVirtualMachines/

drwxr-xr-x  4 root  wheel  136  9  4 00:10 .
drwxrwxr-x  6 root  admin  204  9  3 02:50 ..
drwxrwxr-x  3 root  wheel  102  4 20 14:58 1.7.0.jdk
drwxr-xr-x  3 root  wheel  102  9  4 00:10 jdk1.7.0_07.jdk

あった!jdk1.7.0_07.jdkが今回選択するバージョン。(1.7.0はおそらく1.7.0_04というバージョンです)

OS X Java Preferences スクリーンショット

※この写真のバージョンというタブで細かいバージョン選択が可能なようです。写真はすでにパッチ適応版に変更済み。(とはいえ、ここで設定しても反映されてないわけで)

とりあえず場所が分かったので、さっきの設定は消して

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home

を.bash_Profileに設定。

source .bash_Profile
で反映、

java -version
でバージョン確認。すると、

Picked up _JAVA_OPTIONS: -Duser.language=en -Dfile.encoding=UTF-8
java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)

・・・やっとSE 7に変わりました。が、NetBeans7.2を起動すると、使用しているJavaのバージョンが前と同じ・・・。あくまでコマンドラインでのバージョンが変わっただけのようで。
でもNetBeansがSE 7で起動できない原因て、もしかしたらJavaのインストール場所が変更されたからかもしれない。Java Preferences.appでSE 7の設定項目が増えているのは納得行きませんが。

NetBeans側のJavaの設定

まだNetBeansをSE 7で動かすことは解決できていないので、また色々調べてみる。

Mountain Lion にアップグレードしたら NetBeans 7.1 を起動できなくなりました –kaizawa2’s blog

どうやら設定ファイルに追記するらしい。どうりでNetBeansのアプリケーションの設定を調べても出てこないはず。

↓実際は1行です
/Applications/NetBeans/NetBeans 7.2.app/Contents/Resources/NetBeans/etc/netbeans.conf
に下記を追記。

netbeans_jdkhome="/Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home"

おそるおそるNetBeansを再起動。すると・・・

NetBeans7.2 スクリーンショット

成功ッ!
起動時間とかは特に変わりなしでした。ちょっと期待していたのですがw

でもデフォルト文字コード変わっちゃった?
っていうか元々SJISってのもどうかしてる。(上の方の画像参照)
ここに表示される文字コードと実際のソースファイル(PHP)の文字コードとは別ってことでしょうか。(最近のPHPのソースは全部UTF-8で書いているし・・・)

NetBeans7.2の文字コードをUTF-8に変更

気持ち悪いのでUTF-8に変更してみる。

netbeans デフォルト文字コード 設定 — Codecast

先ほどの設定ファイルの該当箇所に下記を追記。

-J-Dfile.encoding=UTF-8

NetBeans再起動。

NetBeans7.2 スクリーンショット

バッチリUTF-8に変わっています。

というわけで、
・Mac OS X LionにJava SE 7 をインストール、設定
・NetBeans7.2をJava SE 7で動かす

さらに
・NetBeans7.2のデフォルト文字コードをUTF-8に変更
を行いました。

今回はいろんな方のブログを参考にさせてもらいました。感謝!


Webアプリケーション構築入門(第2版) – 実践!Webページ制作からマッシュアップまで

[`evernote` not found]

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*