使用JavaFx WebEngine加载本地文件并向url添加参数。从jar执行程序时不工作

时间:2016-10-23 05:13:16

标签: java url javafx jar webengine

我一直在编程GUI以显示来自传感器的数据。

gui包含一个谷歌地图可视化工具,用标记显示数据(通过gps读数)。

我是通过使用'?'通过网址传入读数的?和'&':

    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 += '&';
    }

然后将其加载到WebEngine

webEngine.load(url);

这在通过eclipse运行时工作正常,但是当我将代码打包到可执行jar中时,链接断开,webEngine上没有显示任何内容。

这是我通过url检索参数的js代码:

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

然后我继续做一些字符串解析,效果很好。

有人知道为什么通过url传递参数来自eclipse而不是来自Jar,是否仍然可以使这个工作?

  

修改

我检查了jar,它包含我使用的唯一外部库(RxTx)我用java标准库完成了其余的工作。

1 个答案:

答案 0 :(得分:0)

您是否检查过由eclipse制作的jar具有您需要的所有必需类和外部库。这可能是外部图书馆不存在的问题。然后,您需要为包含所有依赖项的文件创建一个胖jar