JAVA执行BAT文件,请求高手帮助。。。。

JAVA执行BAT文件,请求高手帮助。。。。,第1张

我当时解决的办法是。

p.getOutputStream()

p.getErrorStream()

都不停地往外读取内容。

原因是这样的,bat命令输出的内容会输出到一块缓冲区内存中。

如果你不及时读取出来,当缓冲区内存满了以后,

bat命令会停止执行。

所以办法就是要把执行bat命令的输出内容读取出来,不能让缓冲区满。

public static void main(String[] args) {

try {

String command = "C:\\Users\\Administrator\\Desktop\\do.bat"

Process p = Runtime.getRuntime().exec(command)

BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream(),"GBK"))//注意中文编码问题

String line

while ((line = br.readLine()) != null) {

System.out.println("StartedLog==>"+line)

}

br.close()

} catch (IOException e) {

}

}

自己试试吧,不知道可行不可行.

java可使用Runtime.exec执行bat文件,示例代码如下:

import java.io.*

import java.util.*

public class TestExec {

public void runbat(int name) {

String cmd = "cmd /c start D:/bat/"+name+".bat"

try {

Process ps = Runtime.getRuntime().exec(cmd)

System.out.println(ps.getInputStream())

} catch(IOException ioe) {

ioe.printStackTrace()

}

}

public static void main(String[] args){

TestExec test1 = new TestExec ()

test1.runbat("abc")

}

}

其中,abc.bat可以是已经存在的bat,也可以是动态生成的bat(如果需要根据已有参数执行bat,则可以使用动态生成bat文件的方式)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11172194.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存