Під час створення проекту Java 8 з Maven:
mvn clean package
Я отримую це повідомлення:
64-бітове попередження VM для сервера Java HotSpot (TM): ігнорування опції MaxPermSize = 128 м; підтримку було видалено в 8.0
Як видалити це повідомлення?
Під час створення проекту Java 8 з Maven:
mvn clean package
Я отримую це повідомлення:
64-бітове попередження VM для сервера Java HotSpot (TM): ігнорування опції MaxPermSize = 128 м; підтримку було видалено в 8.0
Як видалити це повідомлення?
Відповіді:
Посібник із сумісності JDK 8 говорить, що в Java 8 прапор командного рядка MaxPermSize
видалено. Причина полягає в тому, що постійне покоління було вилучене з купи гарячої точки та переміщено до рідної пам’яті. Отже, щоб видалити це повідомлення, відредагуйте змінну користувача MAVEN_OPTS Environment:
Java 7
MAVEN_OPTS -Xmx512m -XX:MaxPermSize=128m
Java 8
MAVEN_OPTS -Xmx512m
sudo gedit ~/.profile
додайте рядок з відповіді там і збережіть файл.
sudo
редагувати файл у домашній папці? Здається, це дуже дивна практика для мене.
Тепер JVM JDK HotSpot використовує вбудовану пам'ять для представлення метаданих класу і називається Metaspace .
Постійне покоління вилучено. PermSize
І MaxPermSize
ігноруються , і видається попередження , якщо вони присутні в командному рядку.
-XX:MaxPermSize=size
Встановлює максимальний розмір простору постійного покоління (у байтах). Цей параметр був застарілий у JDK 8 та заміщений -XX:MaxMetaspaceSize
варіантом.
-XX:PermSize=size
Встановлює простір (у байтах), виділений постійному поколінню, яке запускає збір сміття, якщо його перевищено. Цей параметр був застарілий у JDK 8 та заміщений -XX:MetaspaceSize
варіантом.
MaxPermGen
з MaxMetaSpaceSize
яких вводить в оману, так як їх ролі практично навпаки. До цього простір метаданих класу Java 8 проживав у PermGen, який був обмежений 32 / 64MB, і MaxPerGen
його використовували для його збільшення . Починаючи з Java 8, PermGen більше не є, а простір метаданих класу необмежений, тому MaxMetaspace
розмір насправді використовується для зменшення . Для отримання додаткової інформації дивіться: stackoverflow.com/a/31463972/67824
У JBoss EAP 6.4 клацніть правою кнопкою миші на сервері та відкрийте конфігурацію запуску під аргументом VM, який ви знайдете
{-Dprogram.name=JBossTools: jboss-eap" -server -Xms1024m -Xmx1024m -XX:MaxPermSize=256m}
оновити його до
{-Dprogram.name=JBossTools: JBoss 6.4" -server -Xms512m -Xmx512m}
це вирішить вашу проблему.
Я отримав подібне повідомлення під час запуску командного рядка mvn (версія 3.3.3) в Linux з Java 8. Відкривши сценарій maven / $ MAVEN-HOME / bin / mvn, знайшов наступний рядок
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
Де $ MAVEN_PROJECTBASEDIR за замовчуванням - ваш домашній каталог. Отже, ви можете подивитися два місця, спочатку - файл $ MAVEN_PROJECTBASEDIR / .mvn / jvm.config, якщо він існує. По-друге, подивіться на файли, які, можливо, налаштовують змінну середовища MAVEN_OPTS. Файлами-кандидатами є .bashrc, .bash_profile, .profile та ті файли, що входять до них, такі як / etc / profile, /etc/bash.bashrc
Я знаходився
export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=256m"
в .bashrc в моїй системі, змініть його на
export MAVEN_OPTS="-Xmx512m"
питання вирішено
на випадок, якщо хтось таки отримає таке повідомлення. Це відбувається тому, що ви додаєте аргумент JVM під час запуску проекту Maven. Оскільки це пов'язано з maven, ви можете перевірити pom.xml
файл у своєму проекті.
знайдіть цей рядок <argLine>...</argLine>
, у моєму проекті я також маю аргументи нижче
<argLine>-Xmx1024m -XX:MaxPermSize=512m -XX:+TieredCompilation -XX:TieredStopAtLevel=1</argLine>
Вам слід замінити MaxPermSize
аргумент як -Xms123m -Xmx123m
, оскільки MaxPermSize
він уже застарів і не матиме жодного впливу на конфігурацію JVM:
<argLine>-Xms512m -Xmx512m -XX:+TieredCompilation -XX:TieredStopAtLevel=1</argLine>
Будь ласка, щоб вирішити цю проблему, ми просто встановили встановлений шлях до JDK
standalone.conf
файл, який знаходиться у папці bin сервера JBoss \ Wildfly. Щоб вирішити це, ми робимо наступні кроки:
Для користувачів Eclipse ...
Клацніть Виконати -> Запустити конфігурацію -> є -> встановити альтернативну JRE для 1.6 або 1.7