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.
There's a short tutorial here:
My solution here: Has anyone used or written an Ant task to compile (Rhino) JavaScript to Java bytecode?
You can compile your scripts at runtime using Context.compileString(). This produces a Script object which you can reuse.
Script s = someContext.compileString(myScript, "<cmd>", 1, null);
// Store s, cache it in a map or something, maybe even serialize and persist it.
// Later...
Object result = s.exec(anotherContext, someScope);
The performance difference between something like this and using Context.evaluateString() could easily be multiple orders of magnitude faster.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With