このコードを Eclipse (Juno) から実行すると OOME がスローされるのに、コマンド ラインから実行すると正常に動作する理由を誰か説明できますか? どちらの場合も -Xmx256M を使用します。
static class Task implements Runnable {
byte[] buf = new byte[150000000];
@Override
public void run() {
}
}
public static void main(String[] args) throws Exception {
System.out.println(Runtime.getRuntime().maxMemory());
ExecutorService ex = Executors.newSingleThreadExecutor();
ex.submit(new Task()).get();
ex.submit(new Task()).get();
}
これがEclipseの出力です
259522560
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at Test2$Task.<init>(Test2.java:7)
at Test2.main(Test2.java:17)
ノートブックで実行しましたが、他の PC でどのように動作するかはわかりません。