Java HotSpot (TM) 64 비트 서버 VM 경고 : 옵션 MaxPermSize 무시


133

Maven으로 Java 8 프로젝트를 빌드 할 때 :

mvn clean package

이 메시지가 나타납니다.

Java HotSpot ™ 64 비트 서버 VM 경고 : 옵션 MaxPermSize = 128m 무시 8.0에서 지원이 제거되었습니다.

이 메시지를 제거하는 방법?


2
자세한 설명 은 bugs.java.com/bugdatabase/view_bug.do?bug_id=6964458 를 참조하십시오
Dag

1
이미 하나의 IDEA 인스턴스가 실행 중일 수 있습니다. [1] : stackoverflow.com/a/20553943/3741698
David Hackro 2016 년

답변:


163

JDK 8 호환성 안내서에 따르면 Java 8에서는 명령 줄 플래그 MaxPermSize가 제거되었습니다. 영구 생성이 핫스팟 힙에서 제거되어 기본 메모리로 이동 되었기 때문입니다. 따라서이 메시지를 제거하려면 MAVEN_OPTS 환경 사용자 변수를 편집하십시오 .

자바 7

MAVEN_OPTS -Xmx512m -XX:MaxPermSize=128m

자바 8

MAVEN_OPTS -Xmx512m

13
그 이유는 Oracle의 JRE 8 AFAIK에서 전체 PermGen 공간이 제거 되었기 때문입니다.
Puce

1
누군가이 작업을 수행하는 방법을 모르는 경우 sudo gedit ~/.profile답변에 줄을 추가하고 파일을 저장하십시오.
gotqn

이 옵션을 ~ / .bashrc 파일에 설정했습니다
paka

@gotqn 왜 sudo홈 폴더의 파일 을 편집 하시겠습니까? 나에게는 매우 이상한 연습 인 것 같습니다.
Per Lundberg

22

JDK 8 핫스팟 JVM은 이제 클래스 메타 데이터의 표현에 대한 기본 메모리를 사용하고라고 Metaspace .

영구적 인 세대가 제거되었습니다. PermSize과는 MaxPermSize무시되고 그들이 명령 행에 존재하는 경우 경고 메시지가 발행됩니다.


이것은 간접적으로 만 질문에 대답합니다 ... 대답은 "경고를 제거하려면 플래그를 제거하십시오"입니다. 는 AS 통찰력있는 의견 @로 오핫 - 슈나이더 보여, 더이없는 그들을 위해 하나의 교체.
conny

10
-XX:MaxPermSize=size

최대 영구 생성 공간 크기 (바이트)를 설정합니다. 이 옵션은 JDK 8에서 더 이상 사용되지 않으며이 옵션으로 대체되었습니다 -XX:MaxMetaspaceSize.

-XX:PermSize=size

가비지 수집이 초과 될 경우이를 트리거하는 영구 생성에 할당 된 공간 (바이트)을 설정합니다. 이 옵션은 JDK 8 에서 더 이상 사용되지 않으며이 옵션으로 대체되었습니다 -XX:MetaspaceSize.


12
나는 당신이 이전 용도 전환해야한다는 것을 의미하기 때문에이을 downvoted 된 생각 MaxPermGen으로 MaxMetaSpaceSize자신의 역할을 실질적으로 반대했기 때문에, 어떤 오해의 소지가된다. Java 8 클래스 메타 데이터 공간이 PermGen에 상주하기 전에 32 / 64MB로 제한되었으며 MaxPerGen이를 늘리는 데 사용되었습니다 . 그러나 Java 8부터 PermGen은 더 이상 없으며 클래스 메타 데이터 공간은 무제한이므로 MaxMetaspace실제로 크기를 줄이려 면 크기가 사용됩니다 . 더 자세한 정보는 아래를 참조하십시오 stackoverflow.com/a/31463972/67824
오핫 슈나이더

8

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}

이렇게하면 문제가 해결됩니다.


1

Java 8이 설치된 Linux에서 명령 줄 mvn (버전 3.3.3)을 실행할 때 비슷한 메시지가 나타납니다. 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"

문제가 해결되었습니다


1

어떤 사람은 여전히 ​​이런 종류의 메시지를받습니다. maven 프로젝트를 실행할 때 JVM 인수를 추가하기 때문에 발생합니다. 그것은 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>

-1

이 문제를 해결하기 위해 JDK 경로를 설치했습니다.

standalone.conf

JBoss \ Wildfly Server 의 bin 폴더에 있는 파일입니다 . 이를 해결하기 위해 다음 단계를 수행합니다.

  1. 열기 standlone.conf을JBoss_or_wildfly \ bin 폴더 파일을
  2. 이 파일에서 #JAVA_HOME을 찾으 십시오. 텍스트를 .
  3. # 문자를 제거하고 설치된 JDK 경로를 JAVA_HOME = "C : \ Program Files \ Java \ jdk1.8.0_65"로 설정 하십시오. 문제가 해결 되기를 바랍니다. 감사합니다.

원래 문제는 maven 프로젝트에 있습니다. JBoss와는 아무런 관련이 없습니다.
Boris

-5

Eclipse 사용자의 경우 ...

실행 —> 구성 실행 —> 있음 —> 대체 JRE를 1.6 또는 1.7로 설정을 클릭하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.