使用beanshell运行java代码
好的,我有一些简单的代码,我想用beanshell解释器运行,我想弄清楚我如何做一些事情,比如:使用beanshell运行java代码,java,string,beanshell,Java,String,Beanshell,好的,我有一些简单的代码,我想用beanshell解释器运行,我想弄清楚我如何做一些事情,比如: String s = "int x = 5; System.out.println(x);" Interpreter i = new Interpreter(); i.eval(s); //THIS 现在真正的问题出现了,我如何将“I.eval(s)”的输出转换回字符串,以便在其他地方使用该输出 如果已经有人问过这个问题,或者某个地方有简单的文档,我很抱歉。我找不到任何有用的东西 多谢各位 根据
String s = "int x = 5; System.out.println(x);"
Interpreter i = new Interpreter();
i.eval(s); //THIS
现在真正的问题出现了,我如何将“I.eval(s)”的输出转换回字符串,以便在其他地方使用该输出
如果已经有人问过这个问题,或者某个地方有简单的文档,我很抱歉。我找不到任何有用的东西
多谢各位 根据文档,eval方法返回一个包含评估结果的对象。尝试将其转换为字符串。使用以下解决方案解决
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
它为我返回空值。尝试“Object obj=(String)i.eval(String);”Object obj=i.eval(String);“String obj=(String)i.eval(String)”所有3个函数都返回nullGo,并在调试中查看i.eval(某物),而不将其强制转换为String。