如何在运行时将 rhino/javascript 文件编译为 java 的 .class 字节码
我正在用 Java 制作一个落沙游戏。我希望用户能够使用更简单的语言为其编写自己的引擎。落沙游戏可能会占用大量 CPU 资源,因此我希望引擎尽可能快地运行,而无需手动编译。
我需要知道如何在运行时将 rhino javascript 文件编译为 .class 文件以供使用。
我一直在寻找一种方法,但除了使用我不希望用户必须执行的命令行手动编译它之外找不到其他方法。
I'm making a falling sand game in Java. I want users to be able to write their own engine for it using a simpler language. Falling sand games can be very CPU intensive so I want to have the engine running as fast as possible while not having to manually compile.
I need to know how to compile rhino javascript files to .class files by at runtime to be used.
I've looked for a way but couldn't find any other than manually compiling it by using the command line which I don't want users to have to do.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这里有一个简短的教程:
There's a short tutorial here:
我的解决方案在这里:
是否有人使用或编写过 Ant 任务来将 (Rhino) JavaScript 编译为 Java 字节码?
My solution here:
Has anyone used or written an Ant task to compile (Rhino) JavaScript to Java bytecode?
您可以使用 Context.compileString() 在运行时编译脚本。这会生成一个可以重用的 Script 对象。
类似的方法和使用 Context.evaluateString() 之间的性能差异很容易快几个数量级。
You can compile your scripts at runtime using Context.compileString(). This produces a Script object which you can reuse.
The performance difference between something like this and using Context.evaluateString() could easily be multiple orders of magnitude faster.
您可以尝试以下示例:
You can try the follow sample: