这是我的情况:
我可以访问 Java 类中的 Rhino Context 对象。我想读入一堆 .js 文件并将它们传递到 Rhino 上下文以对它们进行评估。我对在脚本上下文中使用 .js 文件中的函数并不真正感兴趣,而只是对在 .js 文件中声明的变量可用(这是一个工具验证类型的问题)。
理想情况下,我会读入并尝试一次评估每个文件,而不是逐行评估。我注意到 Context 中有一个方法(参见犀牛API)称为evaluateReader()
。我的第一个猜测是我应该获取我想要加载的所有文件,遍历所有文件,然后调用此方法,为每个文件传递某种读取器对象,太棒了,现在它们都在我的脚本上下文中。
因此,假设我走在正确的轨道上,谁能告诉我在 Java 脚本上下文中使用 .js 文件是否有任何好的实践可以遵循,或者是否有更好的方法,或者你做了一些其他方式等等?
这里不寻找实现细节,只是从其他人那里得到的反馈,他们可能已经在他们的一些代码中做到了这一点。使用 Java 脚本语言对我来说是新鲜事。
你知道吗Rhino 在 Java 6 中发布?
String javaScriptExpression = "sayHello(name);";
Reader javaScriptFile = new StringReader(
"function sayHello(name) {\n"
+ " println('Hello, '+name+'!');\n" + "}");
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory
.getEngineByName("JavaScript");
ScriptContext context = engine.getContext();
context.setAttribute("name", "JavaScript",
ScriptContext.ENGINE_SCOPE);
engine.eval(javaScriptFile);
engine.eval(javaScriptExpression);
如果你想在 Java 5 中使用它,你必须download单独的 API。您可以从以下位置获取许多流行脚本语言的引擎脚本.dev.java.net.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)