eval : Java Glossary

eval
In many languages you can take a dynamically created String such as "6*(4+6^2)-cos(20)" and ask to have it evaluated, as if it were a miniature computer program. The function to do this often has a name such as eval. Java has no such function. What can you do? Here are six different approaches:
  1. Compose a miniature Java program on the fly, one complete *.java file and invoke sun.tools.javac.Main instead of execing javac.exe. Use Class.forName or reflection on to then execute the dynamically compiled method.
  2. Similar to the method above, but directly generate some byte codes for a miniature class.
    JASM on how
  3. Write a parser using one of the compiler-compiler tools such as JavaCC.
  4. Use a different language that supports dynamic scripting that is compatible with Java, e.g. BeanShell, Jpython or FESI.
  5. Use Java version 1.6 which has scripting.
  6. For simple applications, all you need is a Hashtable that has lookup by String to give you a delegate object to execute some prewritten piece of code.

Learning More

Oracle’s Technote Guide on Scripting : available:
Oracle’s Javadoc on javax.script package : available:

CMP homejump to top You can get the freshest copy of this page from: or possibly from your local J: drive (Java virtual drive/mindprod.com website mirror)
http://mindprod.com/jgloss/eval.html J:\mindprod\jgloss\eval.html
logo
Please email your , letters to the editor, errors, omissions, typos, formatting errors, ambiguities, unclear wording, broken/redirected link reports, suggestions to improve this page or comments to Roedy Green : feedback email. If you want your message, your name or email kept confidential, not considered for public posting, please explicitly specify that. Unless you state otherwise, I will treat your message as a letter to the editor that I may or may not publish in the feedback section. After that, it will be too late to retract it. If you disagree with something I said, please quote it and cite the web page where you found it, tell me why you think it is wrong, and, if possible, provide some supporting evidence. Threatening to kill me or spouting obscenities has yet to persuade me to change my mind.
mindprod.com IP:[65.110.21.43]
view BlogYour face IP:[38.107.179.214]
You are visitor number 40,225.