我一直在编写一个 GUI 来显示来自传感器的数据。
gui 包括一个谷歌地图可视化工具,显示带有标记的数据(通过 gps 读数)。
我一直在使用“?”通过 url 传递读数。和 '&':
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 标准库完成。