独特的Java和Javascript交织行为

mac*_*264 2 javascript java

我有一个处理信息的java程序,但是我想这样做,以便最终用户可以编写javascripts来决定如何处理这些信息.像这样

 //Java
 private void newData(int var1) {
     script.newData(var1);
 }
Run Code Online (Sandbox Code Playgroud)

然后

 //Javascript
 function newData(var var1) {
     someVar = var1;
     processVar();
 }
Run Code Online (Sandbox Code Playgroud)

我已经研究过一种叫做犀牛的东西,但我真的很难理解犀牛的概念.谁知道该怎么办?

Fra*_*ila 5

你想要犀牛.Rhino是一个用Java实现的javascript运行时.它适合嵌入Java应用程序.

您要做的是创建Java类和对象,然后使它们可以在Javascript环境中访问.幸运的是,Rhino非常容易.阅读本教程并密切关注第一和第二部分(RunScript:简单嵌入Expose Java API).

第一部分是关于在Java应用程序中执行Javascript.您需要稍微调整其示例代码,以便为最终用户提供一些方法,以便将javascript代码传递给您(在文件或流中)以供您执行.这并不困难.

第二部分是关于让你的Java东西可用于Javascript的东西.在最简单的情况下,您不需要做任何事情 - 所有的Java都可以自动使用Rhino javascript.但是,如果需要,您可以非常轻松地完善界面并为最终用户提供更轻松的功能.

使用Rhino,您也可以向另一个方向发展 - 您可以将Javascript对象提供给Java环境.这有点复杂,但在本教程的其余部分中有所介绍.您可能也不需要这样做.