본문 바로가기

JAVA

Java21(Zulu21)이상으로 Spring Boot를 돌릴때 뜨는 경고문

WARNING!

 

프로젝트를 하나 만들었다

 

새로운 마음으로 zulu25, boot 4.0.6 버전을 사용했다

C:\Users\index\.jdks\azul-25.0.3\bin\java.exe

 

그랬더니.. 위와 같은 경고문이 떴다

WARNING: A restricted method in java.lang.System has been called
WARNING: java.lang.System::load has been called by com.intellij.rt.execution.application.AppMainV2 in an unnamed module (file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202024.1/lib/idea_rt.jar)
WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module
WARNING: Restricted methods will be blocked in a future release unless native access is enabled

 

알아보니 JNI/native access 관련 규제라고 한다.

 

load has been called by com.intellij.rt.execution.application.AppMainV2

 

여기에서 AppMainV2 가 내부적으로 java.lang.System::load를 통해 native library를 로딩하려고 해서
Java가 경고를 하는거라고 함

Java 코드는 일반적으로 JVM 내부에서 돌아가야 하는데, JVM 바깥을 건드니까 Java 21 이상부터는 경고를 하는 것

 

 


 

 

해결법

 

1. Run - Edit Configuration

 

 

2. Alt + M 혹은 옵션 수정 누르기

 

 

3. VM 옵션 추가 클릭

 

 

 

4. VM 옵션에 --enable-native-access=ALL-UNNAMED 입력

 

 

 

5. 실행해본다

Spring Boot 4.0.6, Java25(Zulu25) 로 돌릴 때 경고문이 나오지 않는다

 

 

 

사실 경고문이 나오든, 나오지 않든 우리가 개발하거나 테스트할땐 문제가 없지만

Java 가 언제든 JVM 바깥(native code)를 건드는 것을 막을 수도 있다고 하니 알아두는게 좋다

'JAVA' 카테고리의 다른 글

추상클래스  (3) 2025.07.23
재귀호출(recursive call)  (1) 2025.07.20
날짜와 시간 & 형식화 - Instant  (0) 2025.06.25
Path.resolve()  (0) 2025.06.21
I/O - File 예제  (3) 2025.06.20