Podczas budowania projektu Java 8 za pomocą Maven:
mvn clean package
Otrzymuję tę wiadomość:
Ostrzeżenie dotyczące maszyny wirtualnej serwera 64-bitowego Java HotSpot (TM): ignorowanie opcji MaxPermSize = 128m; wsparcie zostało usunięte w wersji 8.0
Jak usunąć tę wiadomość?
Odpowiedzi:
Przewodnik zgodności dla JDK 8 mówi, że w Javie 8 flaga wiersza poleceń
MaxPermSize
została usunięta. Powodem jest to, że trwałe generowanie zostało usunięte ze stosu punktu aktywnego i przeniesione do pamięci natywnej. Aby usunąć tę wiadomość, edytuj zmienną użytkownika środowiska MAVEN_OPTS :Java 7
MAVEN_OPTS -Xmx512m -XX:MaxPermSize=128m
Java 8
źródło
sudo gedit ~/.profile
dodaj tam linię z odpowiedzi i zapisz plik.sudo
edytować plik w swoim katalogu domowym? Wydaje mi się, że to bardzo dziwna praktyka.JDK 8 HotSpot JVM jest teraz za pomocą natywnego pamięci dla reprezentacji metadanych klasy i nazywa Metaspace .
Stałe generowanie zostało usunięte. Elementy
PermSize
iMaxPermSize
są ignorowane, a jeśli są obecne w wierszu poleceń, wyświetlane jest ostrzeżenie.źródło
-XX:MaxPermSize=size
Ustawia maksymalny stały rozmiar przestrzeni generowania (w bajtach). Ta opcja została wycofana w JDK 8 i zastąpiona przez
-XX:MaxMetaspaceSize
opcję.-XX:PermSize=size
Ustawia miejsce (w bajtach) przydzielone do trwałego generowania, które wyzwala wyrzucanie elementów bezużytecznych, jeśli zostanie przekroczone. Ta opcja została wycofana w JDK 8 i zastąpiona przez
-XX:MetaspaceSize
opcję.źródło
MaxPermGen
zMaxMetaSpaceSize
którymi jest mylące, ponieważ ich role praktycznie się odwróciły. Wcześniej przestrzeń metadanych klasy Java 8 znajdowała się w PermGen, która była ograniczona do 32/64 MB iMaxPerGen
była używana do jej zwiększenia . Począwszy od Java 8, PermGen już nie istnieje, a przestrzeń metadanych klas jest nieograniczona, więcMaxMetaspace
rozmiar jest faktycznie używany do jej zmniejszenia . Aby uzyskać więcej informacji, patrz: stackoverflow.com/a/31463972/67824W JBoss EAP 6.4 kliknij prawym przyciskiem myszy serwer i otwórz konfigurację uruchamiania pod argumentem VM, który znajdziesz
{-Dprogram.name=JBossTools: jboss-eap" -server -Xms1024m -Xmx1024m -XX:MaxPermSize=256m}
zaktualizuj do
{-Dprogram.name=JBossTools: JBoss 6.4" -server -Xms512m -Xmx512m}
to rozwiąże twój problem.
źródło
Otrzymałem podobny komunikat podczas uruchamiania wiersza poleceń mvn (wersja 3.3.3) w systemie Linux z Javą 8. Otwierając skrypt maven / $ MAVEN-HOME / bin / mvn, znalazłem następujący wiersz
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
Gdzie $ MAVEN_PROJECTBASEDIR domyślnie jest twoim katalogiem domowym. Więc możesz zajrzeć w dwa miejsca, najpierw jest to plik $ MAVEN_PROJECTBASEDIR / .mvn / jvm.config, jeśli istnieje. Po drugie, spójrz na pliki, które mogą ustawić zmienną środowiskową MAVEN_OPTS. Pliki kandydujące to .bashrc, .bash_profile, .profile i te pliki, które zawierają, takie jak / etc / profile, /etc/bash.bashrc
Zlokalizowałem
export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=256m"
w .bashrc w moim systemie, zmień go na
export MAVEN_OPTS="-Xmx512m"
problem rozwiązany
źródło
na wypadek, gdyby ktoś nadal otrzymał tego rodzaju wiadomość. Dzieje się tak, ponieważ dodajesz argument JVM podczas uruchamiania projektu maven. Ponieważ jest to związane z mavenem, możesz sprawdzić swój
pom.xml
plik w swoim projekcie.znajdź tę linię
<argLine>...</argLine>
, w moim projekcie mam również argument poniżej<argLine>-Xmx1024m -XX:MaxPermSize=512m -XX:+TieredCompilation -XX:TieredStopAtLevel=1</argLine>
powinieneś zamienić
MaxPermSize
argument jako-Xms123m -Xmx123m
, ponieważMaxPermSize
jest już przestarzały i nie będzie miał żadnego wpływu na konfigurację JVM:<argLine>-Xms512m -Xmx512m -XX:+TieredCompilation -XX:TieredStopAtLevel=1</argLine>
źródło
Aby rozwiązać ten problem, właśnie ustawiliśmy zainstalowaną ścieżkę JDK w
plik, który znajduje się w folderze bin JBoss \ Wildfly Server. Aby rozwiązać ten problem, wykonujemy następujące kroki:
źródło
Dla użytkowników Eclipse ...
Kliknij Uruchom -> Uruchom konfigurację -> są -> ustaw alternatywne środowisko JRE dla wersji 1.6 lub 1.7
źródło