JavaFX에서 이미지로드는 jnlp로 배포 될 때 AccessControlException을 일으 킵니다.

StackOverflow https://stackoverflow.com//questions/23035165

문제

매우 간단한 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);
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top