无法使用Rhino在Java中执行浏览器支持的JS代码

无法使用Rhino在Java中执行浏览器支持的JS代码,java,javascript,Java,Javascript,我正在尝试使用ScriptEngine(Rhino)在Java中执行JS代码 我在运行时获取4个不同js文件的js代码,并将其存储在字符串变量中,并将使用下面的java代码调用js文件中的一个方法 字符串结果=(字符串)invocableEngine.invokeFunction(“执行”) 我能够看到Execute方法正在正确调用,但面临以下两个问题 Scriptengine无法识别js文件中用作命令行的双斜杠(//)值,因此引擎无法在// 此外,scriptengine无法识别浏览器参数,如

我正在尝试使用ScriptEngine(Rhino)在Java中执行JS代码

我在运行时获取4个不同js文件的js代码,并将其存储在字符串变量中,并将使用下面的java代码调用js文件中的一个方法

字符串结果=(字符串)invocableEngine.invokeFunction(“执行”)

我能够看到Execute方法正在正确调用,但面临以下两个问题

  • Scriptengine无法识别js文件中用作命令行的双斜杠(//)值,因此引擎无法在//
  • 此外,scriptengine无法识别浏览器参数,如窗口、导航器等

  • 有任何选项可以解决我的问题吗?

    窗口、
    导航器
    文档
    对象等不是JavaScript语言的一部分,而是web浏览器的一部分。Rhino引擎运行纯JavaScript语言,但不模拟web浏览器

    要按原样运行依赖于浏览器的JavaScript,需要额外的代码来模拟所需的浏览器API。如果它只需要几个简单的函数,您可以轻松地自己编写它们(用JavaScript)。如果它需要对浏览器和DOM进行更完整的模拟,请参见,这正是为Rhino设计的。(注意:不过我自己从来没有试过。)

    或者也可能对你有用,甚至。(如果您详细解释此JavaScript代码的来源以及以这种方式运行它的目标,可能会给出更具体的答案。)

    我不知道你所说的“用作命令行的双斜杠(//)值”是什么意思。双斜杠引入的是注释,而不是命令。//和行尾之间的任何代码都不应运行