eclipse europaのヒープサイズ変更で起動に失敗
Windows XPとSunのJREで確認した。eclipse.iniに記述してあるデフォルトのヒープサイズ
-Xms40m -Xms256m
を下記のように変更
-Xms128m -Xms768m
すると、eclipseが起動しなくなる。
回避方法
コマンドラインで-vmオプションを使ってデフォルトで使われるパブリックJREのjvm.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の指定を置き換える方法を探すことにして、先に書いた方法に行き当たった。その後、納得いかなかったので、いろいろ試した。
うーん。やっぱ、europaのランチャーがおかしいのか?
結局回避方法はわかったものの、原因はよくわからない。
なんでeuropaで起動方法を変えたんだろうか?
追記
europaからじゃないみたいだ。
eclipse3.2.2でも同じ現象が起きた。
eclipse3.2.1は大丈夫だった。
さらに追記
なぜjvm.dllを使うようになったかというのは、おそらくjvm.dllを使うと、プロセスが1つになるからだと思われる。タスクマネージャで確認すると、"eclipse.exe"はあるが"javaw.exe"のプロセスがない。でも開発環境だし、メモリ食うしヒープサイズの設定ができないのは致命傷だと思う。そもそもjvm.dllでなぜヒープサイズの拡大設定ができないのかも疑問だ。