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. Js正则表达式学习之test和compile的简单介绍

    RegExp 对象用于规定在文本中检索的内容. 定义 RegExp RegExp 对象用于存储检索模式. 通过 new 关键词来定义 RegExp 对象.以下代码定义了名为 patt1 的 RegEx ...

  2. InputStream中read()与read(byte[] b)(转)

    read()与read(byte[] b)这两个方法在抽象类InputStream中前者是作为抽象方法存在的,后者不是,JDK API中是这样描述两者的: 1:read() : 从输入流中读取数据的下 ...

  3. Mysql iot表

    我们知道一般的表都以堆(heap)的形式来组织的,这是无序的组织方式. Oracle还提供了一种有序的表,它就是索引组织表,简称IOT表.IOT表上必须要有主键,而IOT表本身不对应segment,表 ...

  4. linux 下opensplice的简易安装

    http://www.prismtech.com/opensplice/opensplice-dds-community/software-downloads 下载对应我选择的是: OpenSplic ...

  5. 指尖上的电商---(12)SolrAdmin中加入多核的还有一种方法

    这一节中我们演示下solr中创建多核的还有一种方法. 接第10讲,首先关闭tomcatserver 1.解压solr-4.8.0后,找到solr-4.8.0以下的example目录下的multicor ...

  6. 二、Cocos2dx概念介绍(游戏开发中不同的坐标系,cocos2dx锚点)

    注:ccp是cocos2dx中的一个宏定义,#define ccp(__X__,__Y__)CCPointMake((float)__X__, (float)__Y__),在此文章中表示坐标信息 1. ...

  7. [Android学习笔记]使用getIdentifier()获取资源Id

    使用getIdentifier()获取资源Id Android中可以使用getIdentifier()获取资源ID ex: 根据图片名称获取图片Id private int getImageResId ...

  8. Python逐块读取大文件行数的代码 - 为程序员服务

    Python逐块读取大文件行数的代码 - 为程序员服务 python数文件行数最简单的方法是使用enumerate方法,但是如果文件很大的话,这个方法就有点慢了,我们可以逐块的读取文件的内容,然后按块 ...

  9. 明晚8点,捷微团队QQ群公开课,解说jeewx2.0版本号maven环境的搭建入门!

    2014-08-13号晚8点,捷微团队QQ群公开课,解说jeewx2.0版本号maven环境的搭建入门! 讲师:刘强(团队成员) QQ群:287090836 (JAVA版本号微信开源项目) http: ...

  10. eclipse中我要同时看两个console

    eclipse中我要同时看两个console 有一个按钮“New Console View”,可以让你再建一个Console,还有一个按钮“Display Selected Console”,可以在两 ...