无法从 java 调用 javascript rosnode 模块

Can not call javascript rosnode module from java

我正在尝试创建一个可以与 ros 服务器通信的 Web 应用程序(在 java 中)。因此我使用 rosnode 模块。 对于我使用 vaadin 的网站。 我的问题是我不知道如何 call/execute rosnode java 基于脚本的文件。

当我尝试调用 rosnode.initNode 时出现以下错误:

javax.script.ScriptException: SyntaxError: /home/philipp/webappvaadinros/my-starter-project/src/main/java/ros/webapp/com/nodejs/rosserver.js:3:0 Expected an operand but found let
let rosnodejs = require('/home/philipp/webappvaadinros/my-starter-project/node_modules/rosnodejs/dist/index.js');
^ in <eval> at line number 1

作为脚本引擎,我使用 NashornScriptEngine。 我应该提到我是 javascript 的新手。谁能帮帮我?

所以看起来你正在使用 Java Scripting API 来调用 javascript 而绊倒它的语句是 let,这是相对较新的 ES6 的一个特性标准。所以我假设脚本 API 还不支持它。你可以尝试 babel 你的代码,就像 rosnodejs 在发布之前所做的那样,或者你可以看看你是否可以更改用于评估脚本 API 中的脚本的 node.js 版本(如果它甚至使用 node.js -- 抱歉,一点都不熟悉 API).

但坦率地说,您最好使用 rosjava,而不是尝试在编程语言之间跳转。