【发布时间】:2020-11-10 00:40:29
【问题描述】:
我想为现有 Java 应用程序中的事件添加脚本功能。环顾四周,我发现 JSR 223 用于 Java 脚本。但它被撤回了,wikipedia tells me那个
决定将此功能作为 Java 9 及更高版本的一个组成部分。
然而,看着the wikipedia page on Java SE versions,我发现从 Java SE 9 到现在(Java SE 16,正在开发中)对我来说听起来像是“脚本”。
那么,目前推荐的将脚本工具集成到现有 Java 程序中的方法是什么? (我是否错过了 Java SE 9+ 中与此相关的内容?)(或者它 确实 出现在该维基百科页面上的 Java SE 8 中的事实是否意味着它实际上是“早期" - 对于“早期”的一些定义,包括处于后期发布中......)
【问题讨论】:
-
这很复杂。使用GraalVM。或者决定要使用哪种语言和哪个版本的 Java 并寻找一个实现。如果你想嵌入 JavaScript,Nashorn 或 Rhino。用于 Python 的 Jython。等等。
-
@ElliottFrisch - 使用
GraalVM是否意味着它是特定实现的一部分,而不是正式的“Java”本身?如果我正确理解该版本页面,Rhino(早期)和 Nashorn(后来)都已被弃用并从 Java 中删除。 -
@ElliottFrisch - 我想此时我或多或少与脚本语言无关 - 我想知道我是否正在寻找支持 JSR 223 或其他东西的脚本语言引擎还有吗?
-
目前,这在很大程度上是无关紧要的。而 GraalVM 似乎是 Oracle 追求的方向。所以如果你想知道“官方”的路线,似乎就是这样。很少有一个用例涉及支持多种脚本语言;这使得 JSR 223 成为“值得拥有”(不是必需品)。而且,在某些情况下,无论如何,您都必须摆弄脚本语言实现的内部结构(这使得 JSR 223 不切实际)。我用 Nashorn 完成了一个大型项目。这很有趣。
-
@ElliottFrisch - 好的,谢谢!