java 一个方法 参数传一段代码 在方法内执行这段代码 要怎么实现不是Runtime.getRuntime().exec 这个是执行外部命令的  我要执行的是 比如 System.out.println("123123");
@Override
public String doCode(String code) {
try {
Runtime.getRuntime().exec(code);//就是这 要怎么改?
} catch (IOException e) {
e.printStackTrace();
return "code error!";
}
return "ok";
}

解决方案 »

  1.   

    你举例的code有什么规则吗?没有规则没法实现,其他语言也做不到,顶多传一个函数指针。
    根据你的需求,你参考一下ScriptEngine的eval方法吧
      

  2.   


    就是一段java代码 比如我当前运行的程序里  有一个ObjectManager 那我就可以写  ObjectManager.init()这样被正确执行
      

  3.   

    Runtime一般是调shell用的,你想要的是动态编译?一些第三方jar包或许能做到吧。
      

  4.   


    那你直接调用ObjectManager.init()就好了,没办法动态解析你的代码,再转成指令执行的,或者你可以尝试楼上说的动态编译
    或者你用反射,比如说写个方法 invoke(instance, method, params),调用的时候  invoke(ObjectManager, "init", null)
      

  5.   


    你都知道是执行外部命令的,还传入java内部程序命令肯定没用啊。外部命令是只在windows的cmd模式下可以直接运行的命令