1

多くのソースで説明されているようにjava -Xms512m、Java マシンの最大ヒープ サイズを 512 Mb に設定するために、コマンド ラインから使用しようとしています。しかし、何かがうまくいかず、コマンドラインに次のように表示されます
ここに画像の説明を入力

そして、プログラムから直接確認したところ、 long heapMaxSize = Runtime.getRuntime().maxMemory(); heapMaxSize は 954728448 に等しく、これは約 1Gb です。

4

2 に答える 2

3

これは VM パラメータと呼ばれ、VM (JVM) を起動するときに指定する必要があります。

プログラムの実行時に最大ヒープ サイズを指定できます。

java -Xmx1024m -jar yourJar.jar

または、システムに環境変数を設定するJAVA_OPTSと、JVM は起動時に設定を尊重します。

JAVA_OPTS="-Xmx1024m"

2 番目の質問については、Runtime.getRuntime().totalMemory() と freeMemory() とは何ですか?を参照してください。Runtime.getRuntime().maxMemory()および友人によって返される値を明確にするためです。

于 2016-06-17T16:35:57.237 に答える
1
  • -Xmx<size>: Javaヒープの最大サイズ(Young世代+Tenured世代)
  • -Xms<size>: Javaヒープの初期サイズ(Young世代+Tenured世代)
  • -Xmn<size>: 若い世代のヒープ領域のサイズ

直面している問題は とは関係ありません。コマンドが不完全で-Xmsあることが原因です。実際には、起動するクラスまたは FQN でjava定義されたメイン クラスを含む jar を提供する必要があります。META-INF/MANIFEST.MF

于 2016-06-17T16:45:16.093 に答える