使用 Nashorn 从 Java 脚本调用 Java

Calling Java from JavaScript with Nashorn

我有一个 Chrome 扩展项目,我应该从我的 Java 脚本源文件中调用 Java 函数。为此,我正在尝试使用 Nashorn,但在以下行中:
var MyJavaClass = Java.type('my.package.MyJavaClass');
我收到以下错误

Uncaught ReferenceError: Java is not defined

Nashorn 是一个 Java 库,可用于向用 Java.

编写的程序添加对 JavaScript 的支持

它不是 Java脚本语言的内置功能。

这不是 Chrome 中内置的功能。

您不能从 Chrome 扩展中使用 Nashorn。

Chrome 没有允许 Java 脚本调用 Java 代码的机制。

Chrome doesn't even support Java as a plugin 了。


您可以采用两种基本方法从 Chrome 到 运行 my.package.MyJavaClass:

  • 在Java脚本中重写my.package.MyJavaClass
  • my.package.MyJavaClass 包装在 Web 服务中(例如使用 Servlet),然后通过 Ajax(fetch / XMLHttpRequest)访问它。