本文主要是介绍Java执行批处理.bat文件(有问题???求高手帮忙解答!!!),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Java执行批处理.bat文件(有问题???求高手帮忙解答!!!)
在项目开发中常常都会遇到需要在代码中调用批处理bat脚本,把自己在项目中遇到过的总结下也方便自己温故而知新。
1.cmd命令如下:
cmd /c dir 执行完dir后关闭命令行窗口
cmd /k dir 执行完dir后 不 关闭命令行窗口
cmd /c start dir 打开新窗口执行 dir,原窗口关闭 (注:这种情况要想执行完后窗口自动关闭,必须在bat脚本最后加上exit)
cmd /k start dir 打开新窗口执行 dir,原窗口 不 关闭
2.例子(有问题!!!!求高手帮忙解答啊!!!)
package com.sheepmu;import java.io.File;
import java.io.IOException;
import java.io.InputStream;public class MyTest
{ public static void main(String[] args){
// String cmd="cmd.exe /c start E:\\mybat.bat"; 注意这一句!!!!!!!!String[] cmd={"cmd.exe","/c","start","E:"+File.separator+"mybat.bat"};Process ps = null;//局部变量必须初始化try {ps = Runtime.getRuntime().exec(cmd);} catch (IOException e) {e.printStackTrace();}InputStream in = ps.getInputStream();int c;try {while ((c = in.read()) != -1) {System.out.print("哈哈哈哈"); //并没有输出!!!!!!!!!!????????? 求高手解答!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!System.out.print(c); }} catch (IOException e) {e.printStackTrace();}try {in.close();} catch (IOException e) { e.printStackTrace();}try {ps.waitFor();} catch (InterruptedException e) { e.printStackTrace();}}}
常看到两种cmd语句的表示,一种是带空格的字符串,一种是字符串数组!经查询资料得知,最好还是用字符串数组的形式,因为用字符串在执行Runtime.getRuntime().exec(cmd)时可能无法执行bat语句中的重定向及管道操作符。
对bat脚本的调用已经成功了的,如下图:
问题问题:
为什么while循环并没有执行呢。。????输入流中没有内容????
求高手解惑呀!!!!!
这篇关于Java执行批处理.bat文件(有问题???求高手帮忙解答!!!)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!