java - Redirecting Jruby ScriptEngine output to a StringWriter - Stack Overflow
This appears to work (I'm using 1.6.1, released last week):
ScriptEngineManager factory = new ScriptEngineManager(); ScriptEngine engine = factory.getEngineByName("jruby"); StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); engine.getContext().setWriter(pw); engine.eval("puts 'hello'"); System.out.println("output: " + sw.getBuffer());