Загрузка изображения в Javafx вызывает AccessControlException при развернутии как JNLP
-
21-12-2019 - |
Вопрос
У меня очень простое приложение 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);
. Не связан с StackOverflow