Java.lang.OutOfMemoryError: пространство PermGen

Я получаю следующую ошибку "http-9000-5" java.lang.OutOfMemoryError: пространство PermGen

org.apache.catalina.core.ApplicationDispatcher invoke SEVERE: Servlet.service() для сервлета jsp исключение java.lang.OutOfMemoryError: пространство PermGen.

Мое приложение с использованием axis2.I увеличило размер кучи 1024mb.But его не работает. Какова будет проблема. Решение пожалуйста

Ответ 1

Если вы используете Tomcat в качестве сервера Eclipse, перейдите в раздел "Вид сервера", затем дважды щелкните "Tomcat", затем "Open Launch Configuration", перейдите на вкладку "Аргументы" и после установки "Dcatalina.base =" "поместите это

-Xms256m -Xmx512m -XX:MaxPermSize=512m -XX:PermSize=128m

Ответ 2

PermGen и размер кучи отличаются друг от друга.

Вам нужно увеличить пространство пергмена следующим образом:

-XX:PermSize=256m 
-XX:MaxPermSize=256m

добавьте эти флаги.

Также посмотрите на это: explaining-java-lang-outofmemoryerror-permgen-space и это: how-to-deal-with-java-lang-outofmemoryerror-permgen-space-error

Надеюсь, что это поможет.

Ответ 3

вам нужно установить что-то в аргументе tomcat

JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 
-server -Xms1536m -Xmx1536m
-XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m 
-XX:MaxPermSize=256m -XX:+DisableExplicitGC"

Примечание: XX: MaxPermSize = 256m

Ответ 4

В дополнение к увеличению размера PermGen попробуйте включить сборку мусора с помощью

-XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled

Ответ 5

Попробуйте увеличить выделение плунжера для вашей JVM. Это должно помочь.

Исправить для eclipse: вы можете настроить это в предпочтении eclipse следующим образом

Windows → Настройки (по настройкам mac its: eclipse → ) Java → Установленные JRE Выберите JRE и нажмите "Изменить". в поле типа аргументов VM по умолчанию --Xms256m -Xmx512m -XX: MaxPermSize = 512m -XX: PermSize = 128m. (или ваш приоритет памяти, для 1 ГБ RAM его 1024) Нажмите "ОК" или "ОК".