
프로젝트를 하나 만들었다
새로운 마음으로 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. 실행해본다

사실 경고문이 나오든, 나오지 않든 우리가 개발하거나 테스트할땐 문제가 없지만
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 |