How could I call Java code dynamically?

2019-01-19 08:38发布

问题:

How could I write Java code that is executed like javascript code used together with the eval function?

What I would like to achieve would be something like this:

System.execute ("String str = \"test\"; System.out.println(str);");

which would print the word 'test'. (10x dehmann )

A code sample would help a lot.

回答1:

Look into BeanShell or Groovy. Both will give you reasonable solutions--but those solutions rely on my interpretation of your problem, which may be flawed.



回答2:

I've used the JavaScript engine shipped with Java 6 and it works quite well. The performance of the engine is very very decent.

Check the page http://java.sun.com/javase/6/docs/technotes/guides/scripting/programmer_guide/index.html



回答3:

I believe the compiler API is present in the current Java SE 6. See the javadoc.

See this blog post for details and an example.



回答4:

For completeness sake, the Compiler API is coming in the next version of Java..