我一直在使用BeanShell来解释只做一些计算然后输出到控制台的简单文件。事情是,我想抓住输出。这样System.out.println("test");
我可以将"test"
作为字符串放到其他地方。
我看过Interpreter.getOut()
,但我还没有设法理解它的实际内容(文档没那么有用)。我尝试使用PrintStream
抓取getOut()
,然后打印其内容,但它是空的。搞乱之后我也尝试了以下内容:
Interpreter i = new Interpreter();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(baos);
i.setOut(ps);
i.eval("System.out.println(\"test\");");
String out = baos.toString();
但那也是空的。
答案 0 :(得分:0)
Interpreter i = new Interpreter();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(baos);
System.setOut(ps);
try {
//i.eval("System.out.println(\"test\");");
i.source("c:\\htdocs\\test.bsh");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String out = "hello : "+baos.toString();
System.err.println(out);