У меня есть.JAR, который, по-видимому, израсходовал слишком много памяти и выдает исключение "пространство "кучи" Java" (или что-то подобное).
Таким образом, я пытался выполнить.JAR через CMD как это:
C:\MyFolder>javaw -jar MyJar.jar -Xms64m -Xmx128m
Это не решило проблему. Та же ошибка. Теперь, когда я проверил вкладку Processes в диспетчер задач окон, я заметил, что процесс моей банки имеет намного меньше памяти, чем, что я попросил (то же как выполнение его без параметров).
Почему это игнорирует параметры?
Кроме того, я думаю, что исключение выдается во время, процесс достигает 100 МБ использования памяти. Действительно ли возможно, что GC пытается освободить память, и это - то, что вызывает проблему? Есть ли какой-либо параметр, который я могу установить, чтобы GC предотвратил это?
Спасибо, Malki :)
Команда
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.