日期:2014-05-20  浏览次数:20726 次

java对CMD命令行的操作
我们都知道可以用Runtime.exec(“cmd.exe   /c   servertool”)来执行一条servertool     dos下的命令。但是如果这个servertool(JavaIDL中的指令)是一个平台环境,然后我还需要在servertool> ....环境下继续输入参数,应该怎么搞?
---------------
说的有点乱。我想做的事情如下:
cmd> servertool   -port   1050        
//进入servertool环境
servertool> register   -server   ServerName   ....       (这个要怎么搞?)

------解决方案--------------------
up
------解决方案--------------------
写个批处理,调批处理不就得了?
------解决方案--------------------
写个批处理,调批处理不就得了
不错
------解决方案--------------------
Runtime.exec的返回结果是一个Process,
而Process对象有三个方法
getInputStream
getOutputStream
getErrorStream
分别可以取得Process的输入、输出、错误输出流
如果你需要向进程写入参数,可以用getOutputStream取得输出流,然后往输出流里写参数。

提示:你可以用PrintWriter将这个输出流封装一下,使用println方法来输出 ,会方便得多
------解决方案--------------------
执行完了有输出吗?你可以检查到有输出的时候再往里写东西。
getInputSteram取的的OutputStream对象应该可以检测输出的。
具体操作你去查一个JavaDoc,这台机器上没得我懒得查了
------解决方案--------------------
RE: bat好像不能支持动态参数的吧。
BAT也支持动态参数的,在BAT时用%1,%2等接收参数,最大%9,如果超出9个参数,就要配合Shift命令使用