Я использую 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();
Но это тоже пусто.