MacOSX 10.9にてJava SE6をインストールせずJava SE7を使う

MacOSX 10.9.2 (Mavericks)にて、Eclipse 4.3 (Kepler)を起動させようとすると、Java SE6のインストールを求められてしまう。

"Eclipse.app"を開くには、Java SE6ランタイムが必要です。今すぐインストールしますか?

しかしながら、既にJava SE7 update55をインストール済みなのだ。

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (1):
    1.7.0_55, x86_64:	"Java SE 7"	/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home

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

SE7が使われずにSE6が求められるのは何故だろう?コマンドではSE7が使えるのに、EclipseなどOSXのアプリケーションでは使えないのだ。

$ java -version
java version "1.7.0_55"
Java(TM) SE Runtime Environment (build 1.7.0_55-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.55-b03, mixed mode)

調べたところ、JDKにて利用可能な旨の設定が記載されていないのが原因と分かった。

This is in part due to Oracle's missing definitions of the JRE7 VM capabilities.

Eclipse Kepler for OS X Mavericks request Java SE 6 - Stack Overflow

上記の情報に従って、下記のファイルに追記した。

  • /Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Info.plist
<key>JVMCapabilities</key>
 <array>
  <string>JNI</string>
  <string>BundledApp</string>
  <string>WebStart</string>
  <string>Applets</string>
  <string>CommandLine</string>
 </array>

一旦ログアウトして再度ログインすると、今度はJava SE6のインストールを求められること無く、Java SE7にてEclipseが起動した。