Пространство кучи 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.

Другие вопросы по тегам