Загрузка изображения в Javafx вызывает AccessControlException при развернутии как JNLP

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

Вопрос

У меня очень простое приложение JavaFX.Он должен нарисовать изображение, которое я сохраняю в качестве PNG в каталоге «Ресурсы». Я инициализирую это так:

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

Это работает нормально, когда я бегу прямо из моего IDE.

Но когда я развернул приложение в качестве пакета JavaFX и запускаемой результатом JNLP, то конструктор изображения бросает AccessControLException, в частности:

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

Что, если я правильно понимаю, означает, что у него нет доступа к поиску файла.Как я должен решить это?Также кажется странным, что он будет смотреть в каталоге при развертывании как .jnpl, должен ли я поместить файл .png где-нибудь еще?

Это было полезно?

Решение

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

, который, вероятно, не формирует URL. Это должно быть:

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top