L'image de chargement dans JavaFX provoque AccessControlException lorsqu'il est déployé comme JNLP

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

Question

J'ai une application Javafx très simple.Il doit dessiner une image que je garde en tant que PNG dans le répertoire "Ressources". Je l'initialise comme ceci:

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

Cela fonctionne bien lorsque je l'exécute directement de mon IDE.

Mais lorsque je déploie l'application en tant que package JavaFX et exécutez le JNLP résultant, le constructeur d'images jette une erreur AccessControlException, spécifiquement:

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

qui, si je comprends bien correctement, cela signifie qu'il n'a pas accès à la recherche du fichier.Comment dois-je résoudre ce problème?Il semble également étrange qu'il ressemble à un répertoire lorsqu'il serait déployé comme .jnpl, dois-je placer le fichier .png ailleurs?

Était-ce utile?

La solution

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

Cela ne formule probablement pas une URL. Il devrait être:

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top