Javascript引擎无法找到 - 针对Java平台的脚本编写

3

最近我的一些用户报告了NullPointer问题。感谢其中一位用户,我已经发现我的应用程序无法找到理论上应该随JRE一起提供的Javascript引擎(大多数都有JDK)。

他们如何手动安装脚本引擎?

提前感谢...

P.S. 大多数人使用OpenJDK。 然而,这种情况没有发生在我身上(我也是OpenJDK用户)...编辑:他们至少有1.5版本,大多数人有1.6版本。


他们有哪个JDK版本?Rhino的东西只有自1.5以来才有。 - Pointy
他们中有1.5或更高版本的,大多数人使用1.6。 - nickguletskii
啊,好吧,糟糕了——是1.6而不是1.5引入了Rhino。 - Pointy
2个回答

4

来自JSR 270(Java 6 SE规范):

平台不会要求支持任何特定的脚本语言;实现者可以选择包含他们认为合适的脚本语言的支持。

因此,有可能存在不支持JavaScript的JRE。引擎名称、语言名称和版本捆绑也可能有所不同。“JavaScript”是Oracle的商标,因此一些供应商可能不愿使用它作为标识符字符串。


1
@nickguletskii - 你应该能够将Rhino和适当的JSR 223引擎添加到类路径中。以前在http://java.net/projects/scripting/上有一组引擎二进制文件,但自从Oracle接管后似乎已经消失了。不过,源代码似乎仍然存在。 - McDowell

1

Rhino引擎只有在Java 6版本及以上才会被捆绑。因此,您的Java 5/1.5用户将无法预装它。

话虽如此,您可以从Mozilla的网站手动获取Javascript引擎Rhino,因为该引擎本身确实可以与Java 5一起使用。但是,您将不得不使用Rhino的API,而不是使用Java的ScriptEngine接口。


@nickguletskii 和其他使用Java 1.6的用户是否也报告了这个错误?提供一个简化的堆栈跟踪和问题代码的SSCCE将有助于诊断您的问题 :-) - Zach L
是的,它们是。堆栈跟踪并不有用 - 它只会显示错误在第一次引用脚本引擎的行上,并且脚本引擎为空。例如:http://pastebin.com/iQEAwE3A - nickguletskii

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接