eval : Java Glossary

*0-9ABCDEFGHIJKLMNOPQRSTUVWXYZ (all)

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 Javadoc on javax.script package : available:

This page is posted
on the web at:

http://mindprod.com/jgloss/eval.html

Optional Replicator mirror
of mindprod.com
on local hard disk J:

J:\mindprod\jgloss\eval.html
Canadian Mind Products
Please the feedback from other visitors, or your own feedback about the site.
Contact Roedy. Please feel free to link to this page without explicit permission.

IP:[65.110.21.43]
Your face IP:[3.12.73.221]
You are visitor number