IDE で VM 引数を指定する場合 (この例では NetBeans を使用しています)、これらの引数はコードが IDE 自体を介して実行される場合にのみ渡されると考えるのは正しいですか?
基本的に、プログラムの実行時に VM の最小/初期ヒープ サイズが 2Gb であることを指定したいと思います。-Xms2048mコマンドを使用してこれを行うことができますが、コマンドを入力せずにこれを達成する方法があるかどうか疑問に思っています(顧客のために)。
NetBeans と Launch4J (JAR を EXE ファイルにラップ) で VM 引数を設定したとしても、プログラムが起動してランタイムの合計メモリ サイズを出力すると、常に ~120Mb になります。
私は何が欠けていますか?
編集:使用して合計メモリサイズを出力しました...
int mb = 1024 * 1024;
System.out.println("Max Memory: " + Runtime.getRuntime().totalMemory() / mb);
編集 2: 引数を取らずに、関連する VM 引数を使用してメイン プログラムを開始する初期化プログラムを作成できないでしょうか? 何かのようなもの...
public class Main {
public static void main(String[] args) {
String execName = new File(new File("").getAbsolutePath()) + "\\Program.exe";
Runtime rt = Runtime.getRuntime();
rt.exec("java -Xms2048m -Xmx4096m -jar " + execName);
}
}