Yes, I think @SHC is missing the point of Janino. I use it in Praxis LIVE so that users can write custom components on-the-fly, that run at the same speed as anything built in.
Janino does have a disadvantage though, in that you’re pretty much stuck with Java 1.4 source code features. There’s a few things I have planned for the future that might require things like annotations. Now, there is a Janino interface for javac as well, that handles all the in-memory class loading, expression wrapping, etc. - the only problem is that it requires the user to have a JDK.
Hence, I spent yesterday afternoon refactoring javac and the Janino JDK interfaces into a stand-alone compiler lib. Working so far, though a fair bit more testing to do. Weird coincidence this thread! 
In many ways if we’re talking about end-user scripts I’m less concerned about that (unless you’re promoting distribution of course) - let them break their own stuff! I would love to find a good way of controlling things like infinite loops, without adding loads of extra overhead / memory inconsistency.