JavaFX에서 이미지로드는 jnlp로 배포 될 때 AccessControlException을 일으 킵니다.
-
21-12-2019 - |
문제
매우 간단한 JavaFX 응용 프로그램이 있습니다."Resources"디렉토리에 PNG로 유지하는 이미지를 그릴 필요가 있습니다. 나는 이것을 초기화한다 :
private final static Image customerImage;
static {
Path imageLink = Paths.get("resources", "homeIcon.png");
customerImage = new Image("file:"+imageLink.toString(),true);
}
.
이것은 내 IDE에서 똑바로 실행할 때 이것은 잘 작동합니다.
그러나 응용 프로그램을 JavaFX 패키지로 배포하고 결과 JNLP를 실행하면 이미지 생성자가 AccessControlException을 던졌습니다. 특히 다음과 같이
java.security.AccessControlException: access denied ("java.util.PropertyPermission" "user.dir" "read")
.
, 올바르게 이해하면 파일을 검색 할 수있는 액세스 권한이 없음을 의미합니다.이것을 어떻게 해결해야합니까?또한 .jnpl으로 배포 될 때 디렉토리를 볼 수있는 것처럼 보입니다. .png 파일을 다른 위치에 배치해야합니까?
해결책
customerImage = new Image("file:"+imageLink.toString(),true);
.
아마도 URL을 형성하지 않을 것입니다. 그것은해야합니다 :
customerImage = new Image(imageLink.toURI().toURL().toString(),true);
. 제휴하지 않습니다 StackOverflow