各位请教一下java调用runtime.exec()执行多条cmd命令的问题。

时间:2022-09-03 17:09:49
好像,直接在java代码中把多个命令拼成字符串,或者数组去执行是不行的。
那么就有如下方案,

方案一:java代码动态把所有命令写入到bat文件中再执行。

方案二:循环拿每条命令去调用runtime.exec(),获得结果。

如果命令非常多,成千上万条呢。

这两种方案哪个效率会高一些呢?

5 个解决方案

#1


逻辑上是直接执行批处理效率高,不需要来回切换环境。

不过差异应该很低。

此外,如果你是多核CPU的话,可以考虑并行执行。

#2


我个人认为使用bat方式的命令会快些,因为这个直接在操作系统执行,不需要循环

#3


该回复于2012-03-27 21:49:08被版主删除

#4


多谢各位了,测试了一下,还是批处理效率更高一些。
虽然写文件也耗时,但相比较循环执行来说是耗时少的多了。

#5


接下1楼话题,如果机器资源高,可以同时起多个Runtime来执行不同批处理。

#1


逻辑上是直接执行批处理效率高,不需要来回切换环境。

不过差异应该很低。

此外,如果你是多核CPU的话,可以考虑并行执行。

#2


我个人认为使用bat方式的命令会快些,因为这个直接在操作系统执行,不需要循环

#3


该回复于2012-03-27 21:49:08被版主删除

#4


多谢各位了,测试了一下,还是批处理效率更高一些。
虽然写文件也耗时,但相比较循环执行来说是耗时少的多了。

#5


接下1楼话题,如果机器资源高,可以同时起多个Runtime来执行不同批处理。