Cargar la imagen en Javafx causa AccessControlException cuando se implementa como JNLP
-
21-12-2019 - |
Pregunta
Tengo una aplicación Javafx muy simple.Debe dibujar una imagen que mantengo como PNG en el directorio "Recursos". Me inicializo así:
private final static Image customerImage;
static {
Path imageLink = Paths.get("resources", "homeIcon.png");
customerImage = new Image("file:"+imageLink.toString(),true);
}
Esto funciona bien cuando lo corro directamente de mi IDE.
Pero cuando implemento la aplicación como un paquete de Javafx y ejecute el JNLP resultante, el constructor de imagen lanza una conccontrolexception, específicamente:
java.security.AccessControlException: access denied ("java.util.PropertyPermission" "user.dir" "read")
que, si entiendo correctamente, significa que no tiene acceso a la búsqueda del archivo.¿Cómo debo resolver esto?También parece extraño que buscaría en un directorio cuando se desplegara como .jnpl, ¿debería colocar el archivo .png en otro lugar?
Solución
customerImage = new Image("file:"+imageLink.toString(),true);
Probablemente no está formando una URL. Debe ser:
customerImage = new Image(imageLink.toURI().toURL().toString(),true);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow