Вопрос

У меня есть .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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top