0

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

应该从 rosserver.js 调用方法的 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 的新手。谁能帮我?

4

1 回答 1

1

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

不过坦率地说,您可能会更好地使用rosjava,而不是尝试在编程语言之间跳转。

于 2020-11-22T21:28:40.343 回答