eval : Java Glossary

go to home page E words local find full screen, hide local find menu Google search web for more information on this topic jump to foot of page translate this page with Babelfish by Roedy Green ©1996-2009 Canadian Mind Products
index page for letter ⇒ punctuation 0-9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z (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 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

Sun’s JDK Technote Guide on Scripting : available:
Sun’s Javadoc on javax.script : available:

CMP homejump to top
CMP logo
feedback Please email your feedback for publication, errors, omissions, broken/redirected link reports
and suggestions to improve this page to Roedy Green : feedback email
made with CSS
HTML Checked!
ICRA ratings logo
mindprod.com IP:[65.110.21.43]
Your face IP:[38.103.63.62] The information on this page is for non-military use only.
You are visitor number 27,905. Military use includes use by defence contractors.
You can get a fresh 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