2015年4月30日木曜日

プログラム引数とVMの違いについて (eclipse plugin開発でメモリ不足発生時の対応)

手間取ったのでメモ。

Java VMでOutOfMemoryが出た場合、
VM引数にメモリ拡張のオプションを書くことが必要です。
例えばこんな感じ。

-Xmx512m -XX:MaxPermSize=256m

eclipseから起動する場合、起動構成のオプションに
引数を指定することができます。



これを上の欄の「プログラムの引数」に書いてたら反映されなかった。。

「プログラムの引数」と「VM引数」は何が異なるのか。

VM引数は、JavaVMへの引数です。
JavaVMで決められた引数(*)を指定します。
むしろ、それ以外の引数は渡しても意味がなく、
Javaアプリケーションへも渡りません。

*参考 http://docs.oracle.com/cd/E22289_01/html/821-1274/configuring-the-default-jvm-and-java-arguments.html#configuring-jvm-options

プログラムの引数は、文字通りプログラムへの引数です。
JavaVM上で動くアプリケーションには渡りますが、
JavaVMへは渡りません。

当たり前なことしか書いてない気もしますが、
自分がハマったんだから他の人もハマるはず...

0 件のコメント:

コメントを投稿