У меня есть приложение, упакованное в виде файла JAR. Запуск java -jar myapp.jar
работает нормально. Я хочу запустить это приложение в браузере, поэтому я создал файлы JNLP и HTML с помощью команды javapackage
.
Я внес свой file://
URL в белый список, включил консоль для вывода отладки, и вот что я вижу:
FXML resource = null
load fxml
java.lang.IllegalStateException: Location is not set.
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2438)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2413)
:
Соответствующий код:
public class Main extends Application
{
@Override
public void start(Stage stage) {
try {
System.out.println("FXML resource = " + getClass().getResource("Main.fxml"));
FXMLLoader fxml_loader = new FXMLLoader(getClass().getResource("Main.fxml"));
Controller controller = new Controller(stage);
fxml_loader.setController(controller);
System.out.println("load fxml");
Parent root = fxml_loader.load();
:
Я убедился, что Main.xml
правильно расположен и правильно назван в файле jar (помните, что запуск файла jar из java работает).
Почему файл Main.fxml
не отображается при запуске приложения с веб-запуском? (javaws myapp.jnlp
выдает ту же ошибку)
Я что-то упустил или это ошибка JavaFX и JNLP?
программное обеспечение: Java 8 u51, Linux Centos 6 64 бит.
Обновить
Я подписал свой jar-файл, добавил Permissions: sandbox
и Codebase: *
в свой манифест, добавил <security><all-permissions/></security>
в свой .jnlp, установил максимально разрешительные параметры панели управления, безрезультатно внес свой URL-адрес (file:/
) в белый список. Мое приложение заблокировано по «соображениям безопасности». Это не расстраивает.