aspose file tools*
The moose likes Beginning Java and the fly likes Interpret user input as code Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Interpret user input as code" Watch "Interpret user input as code" New topic
Author

Interpret user input as code

David Lamb
Greenhorn

Joined: Jan 21, 2009
Posts: 2
I am writing a collection of mathematical analysis programs and would like to allow the user to input a valid Java math expression which could then be interpreted by the program as new code. I realize that this may have security issues but the programs are only for my personal use. A snippet below shows what I'm trying to do. A user input of e.g. "x*x" would result in the output of 25 i.e. 5 squared. In Perl I was able to do this quite easily via eval($input).
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 41496
    
  53
Welcome to JavaRanch.

That's what the JEP library does. A GPL'd version is available at http://www.singularsys.com/download/jep-2.4.1-ext-1.1.1-gpl.zip, and examples and documentation are at http://www.singularsys.com/jep/


Ping & DNS - my free Android networking tools app
David Lamb
Greenhorn

Joined: Jan 21, 2009
Posts: 2
Thanks for the link. I circumvented the problem in C by first taking in the input in Perl (so I guess I didn't really circumvent the problem in C) and writing out a C program via Perl inserting the user input and then compiling/executing via Perl's system(). Pretty clunky - so I'll definitely check out JEP. Thanks again, D.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Interpret user input as code