eclipse europaのヒープサイズ変更で起動に失敗

Windows XPとSunのJREで確認した。eclipse.iniに記述してあるデフォルトのヒープサイズ

 -Xms40m
 -Xms256m

を下記のように変更

 -Xms128m
 -Xms768m

すると、eclipseが起動しなくなる。

回避方法

コマンドラインで-vmオプションを使ってデフォルトで使われるパブリックJREjvm.dllをjavaw.exeへ置き換える事。

eclipse -vm "C:\Program Files\Java\jre1.6.0_04\bin\javaw.exe"

これで行ける。バッチファイルを作って起動するようにした。

以下は現象の詳細と解決に至るまで

eclipse Europaを使っていてデフォルト設定のヒープサイズではすぐにOut of Memoryになってしまうので、eclipse.iniに記述してあるヒープサイズを拡大。
すると起動しない…。

eclipsec.exeで起動して、メッセージを確認すると、コンソールに下記のようなメッセージ

Error occurred during initialization of VM
Could not reserve enough space for object heap

さらにダイアログに下記のようなログ(抜粋)

-vm C\jdk1.6.0_04\jre\bin\client\jvm.dll

ん?3.2(callist)までは、javaw.exe使って起動してなかったっけ?と思ったので、-vmの指定を置き換える方法を探すことにして、先に書いた方法に行き当たった。その後、納得いかなかったので、いろいろ試した。

  • JREのバージョンを変更
    • jre1.4.0_13 NG
    • jre1.5.0_14 NG
    • jre1.6.0_04 NG
  • eclipseのバージョンを変更
    • callist OK

うーん。やっぱ、europaのランチャーがおかしいのか?
結局回避方法はわかったものの、原因はよくわからない。
なんでeuropaで起動方法を変えたんだろうか?



追記
europaからじゃないみたいだ。
eclipse3.2.2でも同じ現象が起きた。
eclipse3.2.1は大丈夫だった。



さらに追記
なぜjvm.dllを使うようになったかというのは、おそらくjvm.dllを使うと、プロセスが1つになるからだと思われる。タスクマネージャで確認すると、"eclipse.exe"はあるが"javaw.exe"のプロセスがない。でも開発環境だし、メモリ食うしヒープサイズの設定ができないのは致命傷だと思う。そもそもjvm.dllでなぜヒープサイズの拡大設定ができないのかも疑問だ。