我实际上如何运行Rhino?

问题描述

| 我在这里阅读了文档:Mozilla \的'Scripting Java \' 这些示例也无法回答我的问题:Rhino Liveconnect示例 例如,我的JavaScript文件如何知道在哪里可以找到\“ java.lang \”?当然,它可以在Rhino shell中运行,但是我需要从我的javascript文件内部而不是从shell运行Java代码。我只能在下载的源中看到.java文件。 我想在服务器端nodejs javascript中调用服务器端java方法。 Rhino是否需要以某种方式启动才能为我的JavaScript提供理解Java的能力? 编辑: @eee所以,如果我理解正确,Rhino实际上不会让我从JavaScript运行Java,它只是将我所有的JavaScript转换为java .class文件...我毕竟必须在Java文件中执行?这种方式无法实现从javascript调用Java的目的。整个想法是能够从我的JavaScript代码内部调用任何Java代码,而不必构建新的Java库。 这不是说我不能使用Rhino吗? Nodejs使用V8引擎执行javascript,因此我假设V8和Rhino都不能使用单个javascript文件...我希望我可以调用java方法,这将启动Rhino来翻译那些调用Java。 然后,Java本身将返回一些数据填充的变量。 @Peter:为什么要打电话?我的JavaScript和Java现在都位于同一台服务器上。无论如何,您所说的并不是完全需要Rhino,对吗?我会创建一堆.class文件,然后调用\'java myfile.class -v \“ firstvar \” -x \“ secondvar \” \'..我是否正确理解您的意思?

解决方法

Rhino实际上确实允许我从JavaScript脚本运行Java。没什么可做的。 LiveConnect使您可以访问java。*包中的所有内容。如果希望自己的代码可访问,则只需将类(编译的Java代码)添加到应用程序的类路径中。 我想在服务器端nodejs javascript中调用服务器端java方法。 Rhino是javascript解释器,表示它运行javascript代码。 V8是NodeJS的javascript解释器。您必须选择Rhino或V8。 V8是用C ++编写的,并且深深地嵌入到NodeJS中。 Rhino是Java语言,无法轻松替换V8。有一些项目(长期)可以在Rhino上移植NodeJS,但是除非您准备好参与其中,否则请不要等待。