问题标签 [java-scripting-engine]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
356 浏览

java - 如何在 Java 中在执行期间注入代码?

我正在开发一个 java spring 应用程序,我需要提供在不更改标准代码的情况下添加新代码的能力。

我的挑战:

  1. 将“自定义”代码存储在数据库中
  2. 在执行时将代码注入现有的标准代码
  3. 隔离自定义代码,以便两个用户不会执行彼此的代码。

换句话说,我正在寻找的是在方法执行时,如果用户有此方法的自定义代码,请查看数据库,如果没有,则执行标准代码;如果是,则注入代码,执行修改后的方法,然后处理自定义代码。

我看过 AspectJ 和 Javassist。我有一个使用 AspectJ 的过程,但如果自定义代码在它自己的 jar 中并在构建/运行时添加,我只能让它工作。我没有花太多时间在 Javassist 上,但从文档来看,我似乎在同一条船上。

这是我想要做的一个非常简化的例子。

0 投票
0 回答
74 浏览

java - 通过 Java 的 ScriptEngine 使用 pandas 和其他库

我正在通过 Java 的脚本引擎运行 Python。基本的 hello world 运行良好,但是当我在 python 脚本中导入 pandas 时它失败了。

ImportError:没有名为 pandas 的模块

有没有办法为脚本引擎安装它?

我通过命令行在我的机器上安装了 pandas,但这不是这里使用的 python。

0 投票
0 回答
154 浏览

kotlin - 使用来自 IntelliJ 的绑定运行 Kotlin 脚本 (.kts) - 未解决的参考:绑定

我正在尝试从 Kotlin 程序运行.kts脚本(使用脚本引擎)。

Kotlin 脚本位于项目的资源文件夹中,通常它们支持自动完成、IDE 检查、自动完成等。

当我想使用绑定将外部变量传递给脚本时,问题就出现了。我正在做类似的事情:

bindings是一个Map<String, Any>包含我想在我的脚本中访问的变量:bindings["variable"].

问题是 IntellIJ 在 .kts 脚本中无法识别bindings,因此它显示“未解析的引用:绑定”。如果我从命令行运行脚本一切都很好,但在 IntelliJ 内部我有这个问题。

有没有办法克服这个问题?有没有人遇到过同样的问题?

0 投票
1 回答
50 浏览

java - 无法从 java 调用 javascript rosnode 模块

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

应该从 rosserver.js 调用方法的 Java 类

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

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