javax.script提供的JavaScript中提供的Rhino load()函数? [英] Rhino load() function available in JavaScript provided by javax.script?

查看:126
本文介绍了javax.script提供的JavaScript中提供的Rhino load()函数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

为Rhino的shell开发的一些JavaScript文件使用load()来加载其他JavaScript文件。我正在尝试使用javax.script从这些Rhino JavaScript文件中嵌入一些功能。不幸的是,javax.script的JavaScript没有实现load()函数。尝试eval()包含load()的脚本时,会发生以下错误:

Some JavaScript files that have been developed for Rhino's shell use load() to load additional JavaScript files. I'm attempting to embed functionality from one of these Rhino JavaScript files using javax.script. Unfortunately, the load() function is not implemented by javax.script's JavaScript. When attempting to eval() a script containing load(), the following error occurs:

com.sun.script.javascript.RhinoScriptEngine:-1:in `eval': javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "load" is  not defined.

从Java中评估JavaScript文件时,javax.script是否为load()函数提供了一个程序(不是来自shell)?

Does javax.script provide a for the load() function when evaluating a JavaScript file from within a Java program (not from a shell)?

推荐答案

加载功能非常老。在Rhino的最新RC(RC3)中,有一个 commonJS模块加载器实现。

The load function is very old. In the lastest RC (RC3) of Rhino there is a commonJS module loader implementation.

您必须切换到Rhino的嵌入式版本。一旦创建了脚本上下文,就可以安装require函数。

You will have to switch to an embedded version of Rhino. Once you have created a script context you can install the require function.

所以如果你加载了一个文件'。/ math.js'将变为 var math = require('math'); 。使用模块的URI创建模块提供程序后。

So if you loaded a file './math.js' would become var math = require('math');. After you created your module provider with the URI of the module.

这篇关于javax.script提供的JavaScript中提供的Rhino load()函数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆