Caricamento dell'immagine in JAVAFX Cause AccessControLexception quando è stato distribuito come JNLP

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

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?

È stato utile?

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
scroll top