Caricamento dell'immagine in JAVAFX Cause AccessControLexception quando è stato distribuito come JNLP
-
21-12-2019 - |
Domanda
Ho una semplice applicazione JAVAFX molto semplice.Ha bisogno di disegnare un'immagine che tengo come PNG nella directory "Risorse". Inizializzalo come questo:
private final static Image customerImage;
static {
Path imageLink = Paths.get("resources", "homeIcon.png");
customerImage = new Image("file:"+imageLink.toString(),true);
}
.
funziona bene quando lo eseguo direttamente dal mio IDE.
Ma quando distributo l'applicazione come pacchetto JAVAFX ed esegui il JNLP risultante quindi il costruttore dell'immagine getta un accesscontroLexception, in particolare:
java.security.AccessControlException: access denied ("java.util.PropertyPermission" "user.dir" "read")
.
Che, se capisco correttamente, significa che non ha accesso per cercare il file.Come dovrei risolvere questo?Sembra anche strano che cercherebbe in una directory quando è schierato come .jll, dovrei posizionare il file .png da qualche altra parte?
Soluzione
customerImage = new Image("file:"+imageLink.toString(),true);
.
che probabilmente non sta formando un URL. Dovrebbe essere:
customerImage = new Image(imageLink.toURI().toURL().toString(),true);
. Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow