我如何实际运行Rhino?

时间:2011-04-19 12:47:38

标签: java javascript rhino liveconnect

我已阅读此处的文档:Mozilla's 'Scripting Java'

这些示例不回答我的问题:Rhino Liveconnect example

我的javascript文件如何知道在哪里找到“java.lang”?当然它可以在Rhino shell中运行,但是我需要从我的javascript文件中运行java代码,而不是从shell运行。我只能在下载的源代码中看到.java文件。

我想在我的服务器端nodejs javascript中调用serverside 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本身将返回带有一些数据的变量filles。

@Peter:为什么要打电话?我的javascript和我的java现在都在同一台服务器上。无论如何,你所说的并不完全需要犀牛,不是吗?我创建了一堆.class文件,然后调用'java myfile.class -v“firstvar”-x“secondvar”'..我能正确理解你吗?

1 个答案:

答案 0 :(得分:3)

Rhino 确实实际上让我从javascript脚本运行java。没什么可做的。 LiveConnect使您可以访问java。*包中的所有内容。如果您希望自己的代码可以访问,您只需要将您的类(已编译的Java代码)添加到应用程序的类路径中。

  

我想在我的服务器端nodejs javascript中调用serverside java方法。

Rhino是一个javascript解释器,意味着运行 javascript代码。 V8是NodeJS的javascript解释器。您必须选择Rhino或V8。 V8采用C ++,深深嵌入NodeJS中。 Rhino是Java,不能轻易取代V8。有一些项目(长期)在Rhino上移植NodeJS,但除非你准备好参与,否则不要等待。