gpt4 book ai didi

java - 将外部库与 Nashorn Javascript 引擎结合使用

转载 作者:行者123 更新时间:2023-12-02 04:39:45 25 4
gpt4 key购买 nike

我尝试将 Google Maps Api 与 Nashorn 结合使用。但它似乎不识别该api。

bean

ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");

engine.eval(new FileReader(FacesContext.getCurrentInstance().getExternalContext().getResource("/resources/js/MapGoogle/functions.js").getFile()));

Invocable invocable = (Invocable) engine;

Object result = invocable.invokeFunction("myFunction","param1");

functions.js

var myFunction = function(param1) {

var directionsService = new google.maps.DirectionsService();

return "";
};

错误:

javax.el.ELException: javax.script.ScriptException: 
ReferenceError: "google" is not defined in <eval> at line number 9

如何添加此库以便 Nashorn 可以与 Google Maps Api 配合使用?

最佳答案

我建议替换这一行:

var DirectionsService = new google.maps.DirectionsService();

使用以下行:

var DirectionsService = new Packages.google.maps.DirectionsService();

由于类包既不是“com”、“org”也不是“java”,所以需要添加“Packages”。作为 Nashorn 正确调用 java 库的前缀。

显然你需要将它放在你的类路径中......

关于java - 将外部库与 Nashorn Javascript 引擎结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30309487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com