Pergunta

Eu tenho um aplicativo JavaFX muito simples.Ele precisa desenhar uma imagem que mantenho como png no diretório "recursos".Eu inicializo assim:

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

Isso funciona bem quando eu executo direto do meu IDE.

Mas quando eu implanto o aplicativo como um pacote JavaFX e executo o jnlp resultante, o construtor Image lança uma AccessControlException, especificamente:

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

O que, se bem entendi, significa que ele não tem acesso para procurar o arquivo.Como devo resolver isso?Também parece estranho que ele apareça em um diretório quando implantado como .jnpl. Devo colocar o arquivo .png em outro lugar?

Foi útil?

Solução

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

Provavelmente isso não está formando um URL.Deveria ser:

customerImage = new Image(imageLink.toURI().toURL().toString(),true);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top