JavaFX 경고: 지원되지 않는 JavaFX 구성: '이름이 지정되지 않은 모듈 @...'에서 로드된 클래스
문제:
JavaFX를 설치하고 실행하면 "지원되지 않는 JavaFX 구성: 클래스가 다음에서 로드되었습니다."라는 경고가 표시됩니다. 'unnamed module @...'."
Background:
이 경고는 Java 9의 JPMS(Java Platform Module System) 도입으로 인해 발생합니다. JavaFX 모듈은 모듈 경로가 아닌 모듈 경로에서 "명명된 모듈"로 로드되어야 합니다. class-path.
해결책:
이 문제를 해결하려면:
- JavaFX가 모듈 경로에 있는지 확인하세요. --module-path 옵션을 사용하여 모듈 경로에 JavaFX를 추가합니다.
- JavaFX를 이름으로 확인 모듈: 비모듈형 애플리케이션의 경우 --add-modules 옵션을 사용하여 Java가 JavaFX 모듈을 명명된 모듈로 확인하도록 강제합니다.
- 모듈형 애플리케이션: --module을 사용합니다. 모듈 정보 설명자에 적절한 require 지시문을 사용하여 애플리케이션을 모듈로 시작하는 옵션이 있습니다.
- 다음과 함께 JDK 배포판을 사용하세요. JavaFX: BellSoft Liberica JDK 또는 Azul Zulu JDK와 같은 JavaFX가 포함된 JDK 배포판을 설치하여 JavaFX를 명명된 모듈로 자동 로드합니다.
- 경고 무시: JavaFX 기준 21, 경고를 무시하는 것은 선택 사항이지만 지원되지 않는 구성을 사용하면 향후 문제가 발생할 수 있습니다. 문제.
배포:
- 클라이언트에 JavaFX가 포함된 JRE가 있어야 함: 클라이언트에 JavaFX가 설치된 JRE가 있는지 확인 .
- 자체 포함 애플리케이션 배포: 다음과 같은 도구를 사용하여 자체 포함 애플리케이션을 만듭니다. jlink 또는 기본 이미지를 사용하여 애플리케이션, 라이브러리 및 JRE를 함께 묶습니다.
- 실행 가능한 "Fat" JAR 파일: JavaFX 및 모든 종속성을 실행 가능한 JAR 파일에 포함합니다. 그러나 이 접근 방식은 이름이 지정되지 않은 모듈에서 JavaFX를 로드하므로 암시적으로 지원되지 않습니다.