好的,所以我想使用beanshell解释器运行一些简单的代码,我想知道如何做一些像:
String s = "int x = 5; System.out.println(x);"
Interpreter i = new Interpreter();
i.eval(s); //THIS
现在出现了真正的问题,我怎样才能将“mightval(s)”的输出转换回字符串,以便我可以在别处使用输出?
如果已经被问过或者某处有简单的文档,我道歉。我找不到任何有帮助的东西。
非常感谢你。
答案 0 :(得分:1)
使用以下解决方案解决。
Interpreter i = new Interpreter(); // Create a new BeanShell interpreter.
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(baos);
PrintStream stdout = System.out; // Save System.out
System.setOut(ps); // Set the out to the PrintStream
try{
i.eval(s);
}catch (Exception e){
return "Error";
}
String out = baos.toString(); // Get the output
System.setOut(stdout); // Reset the output
答案 1 :(得分:0)
根据文档,eval方法返回一个包含评估结果的Object。尝试将其强制转换为String。