JavaScript(Rhino)使用库或包含其他脚本
2022-09-01 14:00:55
在 JDK6 中,有没有办法加载多个脚本,每个脚本都在一个文件中,并让一个脚本引用另一个脚本的方法?有点像“包括”?
在 JDK6 中,有没有办法加载多个脚本,每个脚本都在一个文件中,并让一个脚本引用另一个脚本的方法?有点像“包括”?
我认为您正在追求Rhino全局对象/作用域的load()方法/属性
load("file1.js");
load("file2.js");
load("file3.js");
methodFromFileOne();
var bar = methodFromFileTwo();
var etc = dotDotDot();
这将加载一个javascript源文件,类似于PHP中的包含/要求。加载文件后,您将能够调用和运行或使用加载文件中定义的任何对象。
这就是你使用 Rhino shell 时的工作方式,这是我唯一知道的上下文(你的问题提到了 Java SDK,这超出了我的经验范围)
如果您碰巧尝试在 ant 中执行此操作,则可能会看到此错误:
<script language="javascript">
load('foo.js');
</script>
javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: TypeError: Cannot find function load.
但你可以回避它:
<script language="javascript">
eval(''+new String(org.apache.tools.ant.util.FileUtils.readFully(new java.io.FileReader('foo.js'))));
</script>