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文件(有问题???求高手帮忙解答!!!)的更多相关文章

  1. 隐藏执行批处理bat文件

    当kali成功溢出目标以后, 如果我们需要目标主机执行批处理bat的话, 目标机器会出现黑色的弹窗, 用户看到一个黑色弹窗肯定会奇怪, 以下有两种方法让bat文件运行起来: 1:使用bat转化为exe ...

  2. 通过MSSQl作业定时执行批处理BAT文件

    前言 有些时候,我们可能会需要定时执行一下批处理来达到一定的目的,比如Oracle数据库的定时备份,当然Oracle也可以通过Rman实现定时备份.我们大多数的时候是通过操作系统的计划任务实现定时执行 ...

  3. windows下java项目打包、启动批处理 .bat文件

    maven打包,脚本内容: @echo off echo 正在设置临时环境变量 set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_45 set MAVEN_HO ...

  4. window批处理——bat文件的编写

    BAT 批处理脚本 教程   第一章 批处理基础第一节 常用批处理内部命令简介 批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD.这些命 ...

  5. Java 执行 SQL 脚本文件

    转自:http://blog.csdn.net/hongmin118/article/details/4588941 package com.unmi.db; import java.io.FileI ...

  6. windows使用批处理bat文件批量打开程序

    windows命令行官网教程: https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/wind ...

  7. uglifyjs压缩批处理,.bat文件启动

    我们不可能每次都打开cmd去键入压缩执行代码,容易写错不说(如上面那个结果图),还耗时,想想都会让人疯掉. 懒人有懒法,花了点功夫,折腾了一个批处理文件,以后,想要压缩JS,只要双击运行这个.bat文 ...

  8. 批处理(.bat)文件使用笔记

    color: 一位参数时→改变字体颜色,例如 color a 就是修改字体为亮绿色. 两位参数时→改变背景和字体颜色,第一位参数为背景颜色值,第二位参数为字体颜色值. color [BF] B:背景颜 ...

  9. windows下的批处理bat文件和Linux下的shell文件的互相转换

    shell(Linux.Solaris) bat(windows) 含义 # rem 注释行 /[directory]/[directory]/.../[directory]/ [disk]:\[di ...

随机推荐

  1. maven项目配置Project Facets时further configuration available不出来问题

    如果下边的 further configuration available不出来 把Dynamic web module 去掉勾选,应用与项目,然后再点开项目的properties,再选中Dynami ...

  2. oc深坑測试题及其答案

    一.选择题(共80题,每题1分) 1. 不会立马使引用计数器改变的是: 答案:(C)  A.release  B.alloc  C.autorelease  D.retain 2. 在OC中类的接口声 ...

  3. LCA 最近公共祖先 tarjan离线 总结 结合3个例题

    在网上找了一些对tarjan算法解释较好的文章 并加入了自己的理解 LCA(Least Common Ancestor),顾名思义,是指在一棵树中,距离两个点最近的两者的公共节点.也就是说,在两个点通 ...

  4. E. Mike and Foam(容斥原理)

    E. Mike and Foam Mike is a bartender at Rico's bar. At Rico's, they put beer glasses in a special sh ...

  5. Spring MVC Hello World Example(转)

    Spring 3 You may interest at this Spring 3 MVC hello world example. In Spring MVC web application, i ...

  6. leetcode第一刷_Unique Paths

    从左上到右下,仅仅能向右或向下,问一共同拥有多少种走法. 这个问题当然能够用递归和dp来做,递归的问题是非常可能会超时,dp的问题是须要额外空间. 事实上没有其它限制条件的话,这个问题有个非常easy ...

  7. Invalid embedded descriptor for ".proto".Dependencies passed (Protobufer)解决办法

    前言 之前开发的时候,发现居然出现了Dependencies passed to FileDescriptor.buildFrom() don't match those listed in the ...

  8. iOS 单元測试之XCTest具体解释(一)

    原创blog,转载请注明出处 blog.csdn.net/hello_hwc 欢迎关注我的iOS-SDK具体解释专栏 http://blog.csdn.net/column/details/huang ...

  9. 公布AppStore被拒绝的经历

    我们知道IOS发布的版本有很多原因是苹果拒绝发表,我总结了这里3手头上做的原因,他拒绝游,包括同事.朋友拒绝的理由,IOS app参考朋友. 1. 使用非公开API该计划将被拒绝 2. beta版.d ...

  10. hdu4586(概率、期望)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=4586 题意:有一个色子,n面,每面有个分值a[i],其中有m面比较特殊,当该面出现时,可以再投一次.求 ...