Пространство кучи Java Параметры Xmx Xms игнорируются
У меня есть.JAR, который, очевидно, использует слишком много памяти и выдает исключение "пространство кучи Java" (или что-то подобное).
Поэтому я попытался запустить.JAR через CMD следующим образом:
C:\MyFolder>javaw -jar MyJar.jar -Xms64m -Xmx128m
Это не решило проблему. Та же ошибка Теперь, когда я проверил вкладку "Процессы" в диспетчере задач Windows, я заметил, что у процесса моего фляги намного меньше памяти, чем то, о чем я просил (так же, как запустить его без параметров).
Почему игнорируются параметры?
Кроме того, я думаю, что исключение возникает в тот момент, когда процесс достигает 100 МБ памяти. Возможно ли, что GC пытается освободить память, и это является причиной проблемы? Есть ли какой-нибудь параметр, который я могу установить для GC, чтобы предотвратить это?
Спасибо, Малки:)
1 ответ
Команда
javaw -jar MyJar.jar -Xms64m -Xmx128m
будет использовать -Xms... и -Xmx... в качестве параметров метода "main(String[] args)".
Параметры JVM должны быть переданы перед частью -jar:
javaw -Xms64m -Xmx128m -jar MyJar.jar
Причину этого можно увидеть, когда мы выполним "java -version":
Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)
Где ваши параметры -Xms... и -Xmx... являются опциями для JVM.