Java Heap Space XMX XMS Параметры игнорируются
-
29-09-2019 - |
Вопрос
У меня есть .jar, который, по-видимому, использует слишком много памяти, и бросает исключение «пространство кучи Java» (или что-то подобное).
Поэтому я попытался запустить .jar через CMD, как это:
C:\MyFolder>javaw -jar MyJar.jar -Xms64m -Xmx128m
Это не решила проблему. Та же ошибка. Теперь, когда я проверил вкладку процессов в диспетчере задач Windows, я заметил, что процесс моей банки имеет гораздо меньшее воспоминание, чем то, о чем я просил (то же самое, что и запустить его без параметров).
Почему он игнорирует параметры?
Кроме того, я думаю, что исключение брошено во время времени, когда процесс достигает 100 МБ использования памяти. Возможно ли, что GC пытается освободить память, и это то, что вызывает проблему? Есть ли какой-либо параметр, который я могу установить для GC, чтобы предотвратить это?
Спасибо, Малки :)
Решение
Команда
javaw -jar MyJar.jar -Xms64m -Xmx128m
будет использовать -xms ... и -xmx ... в качестве параметров к методу «Main (String [] args)».
Параметры к JVM должен быть передан до того, как часть -жарная часть:
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.