gpt4 book ai didi

java - 如何在 Java 中将 .js 文件加载到 Rhino 上下文中

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:15:52 24 4
gpt4 key购买 nike

这是我的情况:

我可以访问 Java 类中的 Rhino Context 对象。我想读取一堆 .js 文件并将它们传递给 Rhino 上下文以对它们进行评估。我对让 .js 文件中的函数在脚本上下文中可用并不真正感兴趣,因为我只是让 .js 文件中声明的变量可用(这是一种工具验证问题)。

理想情况下,我会读入并尝试一次评估每个文件,而不是逐行评估。我注意到 Context 中有一个名为 evaluateReader() 的方法(参见 Rhino API)。我的第一个猜测是我应该获取我想要加载的所有文件,遍历所有文件,然后调用此方法为每个文件传递某种读取器对象,太好了,现在它们都在我的脚本上下文中。

所以,假设我在正确的轨道上,谁能告诉我在 Java 脚本上下文中使用 .js 文件是否有任何好的实践可以遵循,或者是否有更好的方法,或者你是否以其他方式等?

这里不寻找实现细节,只是来自其他人的反馈,他们可能已经在他们的一些代码中这样做了。使用 Java 中的脚本语言对我来说是新的。

最佳答案

你知道吗 Rhino ships in 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分开。您可以从 scripting.dev.java.net 获得许多流行脚本语言的引擎。 .

关于java - 如何在 Java 中将 .js 文件加载到 Rhino 上下文中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/880533/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com