Java 中支持非二进制插件/插件的最佳方式

Best way to support non-binary plugins / addins in Java

我正在编写一个应该具有插件功能的程序,以便用户可以添加自己的操作。我的问题是我该怎么做。哪种语言最好(例如 php 或 javascript)。我不要二进制插件,因为插件制作应该很容易。

如果我使用例如 Java脚本:我如何使用它与我的 Java 应用程序交互?

这取决于您所说的 'plugin' 和 'interacts with your application' 是什么意思。当您说到插件时,人们可能会认为 JVM 本身上 运行 的东西是您程序的一部分。在那种情况下,我不知道你为什么提到像 PHP 这样的东西,它主要是为 HTTP 设计的(尽管有些人对它有其他创造性的用途。)

Java 带有开箱即用的 Java 脚本引擎实现(Java 8 带有 Nashhorn Java 脚本引擎)。因此,如果你想要一个非编译脚本类的界面,这可能是最自然的方式,尽管这取决于你想要提供什么样的功能。

另一种选择是使用 Groovy。您可以找到一些使用这种方法的示例应用程序。例如,流行的Web服务测试工具SoapUI提供了Groovy和Java脚本支持,供用户编写自己的测试脚本和扩展。

但是,再次强调,这取决于您想要什么样的功能。