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)
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)