khstar
OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended 본문
OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
khstar 2023. 12. 23. 20:00Jdk를 8 -> 17로 올린 후에 제목과 같은 에러가 발생했습니다.
OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
내용을 찾아 보면 JDK 1.8 이후에 추가된 기능으로 클래스 로딩 시 Class Data Sharing(CDS) 기능을 사용하면 발생한다고 합니다.
오류가 아니고 경고 메시지로 무시해도 된다고는 하는데 아무래도 신경이 쓰여서 찾아봤습니다.
1. IntelliJ에서 셋팅하는 방법입니다. 저는 Maven build시에 발생하는데 적용이 안됐습니다.
IntelliJ에서는 Settings -> Build, Execution, Development -> Debgger -> Async Stack Tarces 에서
Instrumenting agent(requires debugger restart)를 체크해제 하면 된다고 하는데 저는 안됐습니다.
2. VM Opttion으로 -Xshare:off 옵션을 사용하여 CDS 비활성화 하는 방법이 있다고 하는데 역시나 적용 안됐습니다.
3. 마지막으로 찾은 것은 아래의 maven plugin을 추가하는 것이었습니다.
저는 아래의 Plugin을 추가하니 해당 메시지가 삭제 되었습니다.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.2.1</version>
<configuration>
<argLine>-Xshare:off</argLine>
<parallel>all</parallel>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>3.2.1</version>
<configuration>
<argLine>-Xshare:off</argLine>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
해결은 되었으니 정확히 어떤 이유로 해결됐는지는 모르겠습니다.
정확한 해결 이유를 아시는 분은 댓글 부탁드립니다.
참고/참조 :
https://www.inflearn.com/questions/917150/openjdk-64-bit-server-vm-warning