我有一个非常简单的JavaFX应用程序。它需要在"资源"中绘制一个我保留的图像。目录。 我把它初始化为:
private final static Image customerImage;
static {
Path imageLink = Paths.get("resources", "homeIcon.png");
customerImage = new Image("file:"+imageLink.toString(),true);
}
当我直接从IDE运行它时,这很好用。
但是当我将应用程序部署为JavaFX包并运行生成的jnlp时,Image构造函数会抛出一个AccessControlException,具体来说:
java.security.AccessControlException: access denied ("java.util.PropertyPermission" "user.dir" "read")
如果我理解正确,则意味着它无权搜索该文件。我该如何解决这个问题?如果我将.png文件放在其他地方,它会在部署为.jnpl时显示在目录中似乎也很奇怪?
答案 0 :(得分:2)
customerImage = new Image("file:"+imageLink.toString(),true);
可能没有形成URL。 它应该是:
customerImage = new Image(imageLink.toURI().toURL().toString(),true);