2014-04-12 11 views
0

매우 간단한 JavaFX 응용 프로그램이 있습니다. 그것은 "resources"디렉토리에 png로 유지하는 이미지를 그려야합니다. 내가 이런 식으로 초기화 : 내 IDE에서 바로 실행할 때 잘 작동JavaFX에서 이미지를로드하면 jnlp로 배포 할 때 AccessControlException이 발생합니다.

private final static Image customerImage; 
static { 
    Path imageLink = Paths.get("resources", "homeIcon.png"); 
    customerImage = new Image("file:"+imageLink.toString(),true); 
} 

. 나는 결과 JNLP을 자바 FX 패키지와 응용 프로그램을 배포하고 실행할 때

는하지만 이미지 생성자는 구체적으로 나타내는 AccessControlException를 throw : 내가 제대로 이해한다면, 그것은 액세스 할 수없는 의미

java.security.AccessControlException: access denied ("java.util.PropertyPermission" "user.dir" "read") 

파일을 검색합니다. 이 문제를 어떻게 해결해야합니까? 또한 .png 파일을 다른 곳에 배치해야 할 경우 .jnpl로 배포 할 때 디렉토리를 검색하는 것이 이상하게 보입니다.

아마 URL을 형성하지 않는

답변

2
customerImage = new Image("file:"+imageLink.toString(),true); 

. 이 있어야한다 :

customerImage = new Image(imageLink.toURI().toURL().toString(),true); 
+0

이 가진 문제는 내가 정적 초기화에서 고통 URL 기형 예외를 처리 할 필요가 있다는 것입니다. JavaFX 가이드가 클래스 로더의 getResourceAsStream()을 사용하는 것을 말합니다. 다소 덜 짜증니다 – CarrKnight