JAVA PROCESS

Runtime rt = Runtime.getRuntime();
Process p = null,process=null;
StringBuilder info=new StringBuilder();
ArrayList<String> bats=ApiFile.getBatFiles(currentfolder);
for(int i=0;i<bats.size();i++)
{

try {

p = rt.exec(currentfolder+File.separator+bats.get(i));
InputStream bis = p.getInputStream();
int _byte;
System.out.println("Process read in is :" + bis.read());
while ((_byte = bis.read()) != -1){
System.out.print((char) _byte);
}
bis.close();
p.waitFor();
System.out.println("Porcess saveAs report done.");
} catch (Exception e) {
System.out.println("Error my exec " + e);
}


try{

System.out.println("================="+ApiFile.getBatFiles(currentfolder).get(i).toString());
System.out.println("*********** "+currentfolder+File.separator+bats.get(i));
process = rt.exec(currentfolder+File.separator+bats.get(i));

// String[] cmds = {"currentfolder+File.separator+bats.get(i)"};//command and arg

System.out.println("========== Begin ===========" );
try {
process = Runtime.getRuntime().exec(currentfolder+File.separator+bats.get(i)); // 调用外部程序
System.out.println("输出结果为:1" );
//process=Runtime.getRuntime().exec("test.bat");
StreamGobbler errorGobbler = new StreamGobbler(process.getErrorStream(), "ERROR");
System.out.println("输出结果为:2" );
// kick off stderr
errorGobbler.start();
System.out.println("输出结果为:3" );
StreamGobbler outGobbler = new StreamGobbler(process.getInputStream(), "STDOUT");
// kick off stdout
outGobbler.start();
System.out.println("输出结果为:4" );
process.waitFor(); System.out.println("输出结果为:5" );
System.out.println(process.exitValue());
} catch(Exception e) {}
System.out.println("========== Finished ===========" );


final InputStream is1 = process.getInputStream();
new Thread(new Runnable()
{
public void run()
{
try{System.out.println("Good morning.--00");
BufferedReader br = new BufferedReader(new InputStreamReader(is1));
System.out.println("Good morning.--01");
while(br.readLine() != null) ;System.out.println("Good morning.--02");
}catch(Exception ex){}System.out.println("Good morning.--1");
}
}).start();
// }.start();// 启动单独的线程来清空process.getInputStream()的缓冲区
InputStream is2 = process.getErrorStream();System.out.println("Good morning.--10");
BufferedReader br2 = new BufferedReader(new InputStreamReader(is2));
StringBuilder buf = new StringBuilder(); // 保存输出结果流
String line = null;System.out.println("Good morning.--11");
while((line = br2.readLine()) != null) buf.append(line); // 循环等待ffmpeg进程结束
System.out.println("Good morning.--12");
System.out.println("输出结果为:" );

String cmds="currentfolder+File.separator+bats.get(i)";
ProcessBuilder builder = new ProcessBuilder(cmds);
//both read inputstream and errstream
builder.redirectErrorStream(true);
Process process = builder.start();
BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
String readLine = br.readLine();
while (readLine != null) {
System.out.println(readLine);
readLine = br.readLine();
}
int resultValue = process.waitFor();
builder.redirectErrorStream(true);



BufferedReader read = new BufferedReader(new InputStreamReader(p.getInputStream()));
String str = null; String s = " ";OutputStream out = p.getOutputStream();
while ((str = read.readLine()) != null) {
System.out.println(str);
info.append( "\n "+s);
if(!read.ready())
{
String o = "\n\n\nexit\n ";
out.write(o.getBytes());
}
}

read.close();
out.close();
p.destroy();

InputStream in = p.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
OutputStream out = p.getOutputStream();
String s = " ";
while(null != ( s = br.readLine()))
{
info.append( "\n "+s);
if(!br.ready())
{
String o = "\n\n\nexit\n ";
out.write(o.getBytes());
}
}
br.close();
out.close();
p.destroy();
}catch(Exception ex){}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值