【问题标题】:Can not call javascript rosnode module from java无法从 java 调用 javascript rosnode 模块
【发布时间】:2020-11-22 15:41:29
【问题描述】:

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

当我尝试调用 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 ros java-scripting-engine rosnodejs


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的回答。我会尝试 rosjava。
    • rosjava不是android库吗?
    • 我从未使用过它,但我假设它只是一个 java 库。您是否可以在 android 上使用任何 java 库,我不知道,但只是假设。这不就是java的全部意义吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-03
    • 2010-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-03
    • 2010-12-29
    相关资源
    最近更新 更多