memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

eclipseが起動しない

eclipse-jee-europa-fall2-win32.zipをダウンロードしてきて展開しeclipse.exeをダブルクリックしてもJVM terminated. Exit code=-1なんていうエラーがでてさっぱり起動しませんでした。調べてみると-vmオプションをつけて起動すればよいことがわかりました。以下のような形です。ショートカットを作成してショートカットのプロパティを開きリンク先に指定するのがよいです。*1

eclipse.exe -vm "C:\Program Files\Java\jdk1.6.0_03\bin\javaw.exe"


でも、なんで-vmの指定が必要になったのでしょう?調べてみました。以下メモです。結論からいいますがはっきりした原因まではたどり着いていません。


eclipseのreadmeに以下のような記述があります。

eclipse -vm c:\jdk1.4.2\jre\bin\javaw

Tip: It's generally a good idea to explicitly specify which Java VM to use when running Eclipse. This is achieved with the "-vm" command line argument as illustrated above. If you don't use "-vm", Eclipse will look on the O/S path.

起動時に使用するVMを-vmオプションで指定することは一般的にナイスアイデア*2です。もし-vmVMを指定しない場合はOSのPATHに従う、と読み取れます。ということは、従来のeclipseと同様にPATHを利用していることになります。

では、PATHで最初に見つかるjavaw.exeはどこにあるか?Linuxであればwhichコマンドがあります。ついでにWindowでのwhichコマンドの作り方を調べました。こちらです。入手したwhichコマンドを実行してみるとc:\windows\system32\javaw.exeであることがわかります。ファイルの日付とサイズからみてJDKをインストールしたときのものと同じであることが想像できます。*3eclipseが使用するVMの探索仕様?がeclipseのreadmeの通りだとすれば、eclipseはOSのPATHに従いc:\windows\system32下のjavaw.exeを発見し起動するはずです。しかし、起動できない。ついでにeclipse -vm c:\windows\system32\javaw.exeと指定してみましたが、こちらは問題なく正常に起動できます。


以上のことから、eclipse.exeは少なくともOSのPATHにしたがってVMを検索していないことが推察できます。そのことから、従来はJavaをインストールしEclipseをインストールしEclipseアイコンをダブクリしただけで起動できたはずが、できなくなったということになります。


changelogがないかreleasenoteを追いかけるか、Java技術者のForumを追いかけてようかと思いましたが、休日が丸潰れてしまいそうなのでここらへんでやめておきます。


ちなみに私の環境は、osx(10.5.1)にparallels3.0をいれ、そこにWindowsXPSP2を入れています。JDKjdk-6u3-windows-i586-p.exe、Eclipseeclipse-java-europa-fall2-win32.zipをインストールしました。

*1:jdk内のJREフォルダをeclipseのインストールフォルダにコピーすればいいというアドバスもありましたが私の環境では動作しませんでした。またeclipse.iniに-vmの指定を入れてみたのですがこれもダメでした。

*2:good ideaってことは指定しなくても別にいいよということですよね〜

*3:要は、-vm c:\windows\system32\javaw.exeも-vm "C:\Program Files\Java\jdk1.6.0_03\bin\javaw.exe"も同じ