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

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

我当时解决的办法是。

p.getOutputStream()

p.getErrorStream()

都不停地往外读取内容。

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

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

bat命令会停止执行。

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

@echo off

echo 正在加密,请稍后....

echo path:%~dp0

set base=%~dp0

set class=%base%\bin

set libs=%base%\lib

set

class_path=%class%%libs%\c3p0-0.9.1.2.jar%libs%\mysql-connector-java-5.0.8-bin.jar

java -classpath %class_path% com.test.Main

@pause

文件结构图:

classes目录是java编译后的class目录

libs目录存放的所要使用到的jar

startNet.bat为我们启动的bat文件

Process process=

Runtime.getRuntime().exec("cmd /c run.bat")//要执行的文件的路径为run.bat

 

// 得到输入流

 InputStream inputStream=process.getInputStream()

 InputStreamReader inputStreamReader=new InputStreamReader(inputStream)

 BufferedReader bufferedReader=new BufferedReader(inputStreamReader)

 

 // 得到输出流

 OutputStream outputStream=process.getOutputStream()

 OutputStreamWriter outputStreamWriter=new OutputStreamWriter(outputStream)

 BufferedWriter bufferedWriter=new BufferedWriter(outputStreamWriter)

 

 bufferedWriter.write("dd\n") 

bufferedWriter.flush()

 String temp=null

 while((temp=bufferedReader.readLine())!=null)

 {

 System.out.println(temp)

 

 }

}


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

原文地址: https://outofmemory.cn/yw/7773701.html

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

发表评论

登录后才能评论

评论列表(0条)

保存