Использование JavaFX WebEngine для загрузки локального файла и добавления параметров к URL. Не работает при выполнении программы из jar

#java #url #javafx #jar #webengine

#java #url #javafx #jar #webengine

Вопрос:

Я программировал графический интерфейс для отображения данных с датчиков.

Графический интерфейс включает в себя визуализатор карты Google, отображающий данные с маркерами (через показания gps).

Я передавал показания по URL-адресу, используя ‘?’ и ‘amp;’:

     String url = this.getClass().getResource("/resources/map.html").toExternalForm();
    url  ="?";
    for (GPSReading r : data) {
        // remove all aplhabetic characters, except for S and E (for lon
        // lat) then trim the white spaces
        // pass it into the url to be processed by js
        url  = r.toString().trim().replaceAll("[^\d.ES ]", "").replaceFirst("S", "");
        url  = 'amp;';
    }
  

а затем загружаем его в веб-движок

 webEngine.load(url);
  

Это отлично работает при запуске через eclipse, но когда я упаковываю код в исполняемый файл jar, ссылка прерывается, и в WebEngine ничего не отображается.

Это js-код, в котором я извлекаю параметры из URL:

     var parameters = window.location.href;
    parameters= decodeURI(parameters.split("?")[1]);
    var paramArray = parameters.split('amp;');
    [...]
     var field = paramArray[reading].split(" ").filter(Boolean);
  

А затем я продолжаю и выполняю некоторый синтаксический анализ строк, который работает нормально.

Кто-нибудь знает, почему передача параметров через URL работает из eclipse, но не из Jar, есть ли способ заставить это работать?

Редактировать

Я проверил jar, и он содержит единственную внешнюю библиотеку, которую я использовал (RxTx), остальное я сделал со стандартной библиотекой Java.

Комментарии:

1. Вы смотрели GMapsFX? Это оболочка JavaFX, которая позволила бы вам размещать маркеры непосредственно из java. rterp.github.io/GMapsFX

Ответ №1:

Вы проверили, что jar, созданный eclipse, содержит все необходимые классы и внешние библиотеки, которые вам нужны. Возможно, проблема в отсутствии внешних библиотек. Затем вам нужно создать fat jar для файла со всеми вашими зависимостями

Комментарии:

1. Привет, спасибо за ответ, я генерирую jar через eclipse, поэтому я не слишком уверен. Как бы я ни тестировал, и если я не помещаю параметры в URL, карта загружается нормально (очевидно, без маркеров). Я изучаю возможность перезаписи моей js-функции nand и вызова скрипта WebEngiexecute для передачи пункта

2. вызов WebEngine.executeScript для передачи параметров в *