java 一个方法 参数传一段代码 在方法内执行这段代码 要怎么实现

Artognou 2019-03-04 04:22:48
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";
}
...全文
435 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39936465 2019-03-05
  • 打赏
  • 举报
回复
引用 楼主 Artognou 的回复:
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";
}


你都知道是执行外部命令的,还传入java内部程序命令肯定没用啊。外部命令是只在windows的cmd模式下可以直接运行的命令
qybao 2019-03-05
  • 打赏
  • 举报
回复
引用 2 楼 Artognou 的回复:
就是一段java代码 比如我当前运行的程序里 有一个ObjectManager 那我就可以写 ObjectManager.init()这样被正确执行


那你直接调用ObjectManager.init()就好了,没办法动态解析你的代码,再转成指令执行的,或者你可以尝试楼上说的动态编译
或者你用反射,比如说写个方法 invoke(instance, method, params),调用的时候 invoke(ObjectManager, "init", null)
nayi_224 2019-03-05
  • 打赏
  • 举报
回复
Runtime一般是调shell用的,你想要的是动态编译?一些第三方jar包或许能做到吧。
Artognou 2019-03-05
  • 打赏
  • 举报
回复
引用 1 楼 qybao 的回复:
你举例的code有什么规则吗?没有规则没法实现,其他语言也做不到,顶多传一个函数指针。 根据你的需求,你参考一下ScriptEngine的eval方法吧
就是一段java代码 比如我当前运行的程序里 有一个ObjectManager 那我就可以写 ObjectManager.init()这样被正确执行
qybao 2019-03-04
  • 打赏
  • 举报
回复
你举例的code有什么规则吗?没有规则没法实现,其他语言也做不到,顶多传一个函数指针。 根据你的需求,你参考一下ScriptEngine的eval方法吧

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧