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. Codeforces Round #235 (Div. 2) D. Roman and Numbers (数位dp、状态压缩)

    D. Roman and Numbers time limit per test 4 seconds memory limit per test 512 megabytes input standar ...

  2. Android WebView挂马漏洞--各大厂商纷纷落马

    本文章由Jack_Jia编写,转载请注明出处.   文章链接: http://blog.csdn.net/jiazhijun/article/details/11131891 作者:Jack_Jia ...

  3. Codeforces 475D CGCDSSQ 求序列中连续数字的GCD=K的对数

    题目链接:点击打开链接 #include <cstdio> #include <cstring> #include <algorithm> #include < ...

  4. [Android学习笔记]view的layout过程学习

    View从创建到显示到屏幕需要经历几个过程: measure -> layout -> draw measure过程:计算view所占屏幕大小layout过程:设置view在屏幕的位置dr ...

  5. 解压tar.gz文件报错gzip: stdin: not in gzip format解决方法

    解压tar.gz文件报错gzip: stdin: not in gzip format解决方法 在解压tar.gz文件的时候报错 1 2 3 4 5 [Sun@localhost Downloads] ...

  6. 整理自百度知道提问的几道Java编程题

    蚂蚁爬杆 问题描述: 有一根27厘米的细木杆,在第3厘米.7厘米.11厘米.17厘米.23厘米这五个位置上各有一只蚂蚁.木杆很细,不能同时通过一只蚂蚁.开始时,蚂蚁的头朝左还是朝右是任意的,它们只会朝 ...

  7. C++ 多态性分析

    编译 - 时间多态性--函数重载 编译后的中间代码(例如GCC产生.o文件.此时还不是汇编语言)函数名字有变化,看以下两个样例. void cc_show(const char*str)     -& ...

  8. [Backbone]Make Backbone Better With Extensions

    Backbone is becoming wildly popular as a web application development framework. Along with this popu ...

  9. hdu2870(dp求最大子矩阵)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2870 分析:分别转换成'a','b','c'三种来求,其实就跟hdu1505一样了... #inclu ...

  10. Android利用反射获取状态栏(StatusBar)高度

    MainActivity如下: package cc.teststatusbarheight; import java.lang.reflect.Field; import android.os.Bu ...