0

現在、私は OutOfMemoryError を頻繁に取得している Mac アプリケーションに取り組んでいます。現在、アプリケーションに非実行可能 JAR ファイルを使用しているため、Java コードは JNI を使用して実行されるため、アプリケーションを開始する前にヒープ サイズを設定できません。したがって、JNI または C を使用してヒープ サイズを設定する方法はあります。

または上記の問題に対するその他の解決策。前もって感謝します。

4

1 に答える 1

1

私は答えを見つけました。私は JNI を使用していたので、JVM を作成する前に、JavaVMOption パラメータに最小サイズの「-Xms256m」と最大サイズの「-Xmx512m」を入力する必要があります。最小 JVM ヒープ サイズを 256 MB、最大 JVM ヒープ サイズを 512 MB として割り当てます。

したがって、これは他の人を助けるためのコードです:

JavaVMInitArgs args;
JavaVMOption options[3];
args.nOptions = 3;

options[0] = (char*)"-Xms256m";
options[1] = (char*)"-Xmx512m";
options[2] = //Your JAR file path.
args.options = options;

次に、JVM の作成中に引数 (JavaVMInitArgs オブジェクト) を渡します。上記のコードは、最小および最大のヒープ サイズを設定します。

最大ヒープ サイズを設定する前に最小ヒープ サイズを設定しないでください。その場合、最小ヒープ サイズが最大ヒープ サイズ以上になり、クラッシュします。

于 2013-05-13T10:47:14.557 に答える