java怎么调用bat,并传参数

Python012

java怎么调用bat,并传参数,第1张

java可使用Runtime.exec执行bat文件,示例代码如下:

import java.io.*

import java.util.*

public class TestExec {

public void runbat(int name) {

String cmd = "cmd /c start D:/bat/"+name+".bat"

try {

Process ps = Runtime.getRuntime().exec(cmd)

System.out.println(ps.getInputStream())

} catch(IOException ioe) {

ioe.printStackTrace()

}

}

public static void main(String[] args){

TestExec test1 = new TestExec ()

test1.runbat("abc")

}

}

其中,abc.bat可以是已经存在的bat,也可以是动态生成的bat(如果需要根据已有参数执行bat,则可以使用动态生成bat文件的方式)

我当时解决的办法是。

p.getOutputStream()

p.getErrorStream()

都不停地往外读取内容。

原因是这样的,bat命令输出的内容会输出到一块缓冲区内存中。

如果你不及时读取出来,当缓冲区内存满了以后,

bat命令会停止执行。

所以办法就是要把执行bat命令的输出内容读取出来,不能让缓冲区满。

bat文件内容如下:

cd <arg0>

java <-classpath arg1><-jar>arg2 <arg3 arg4..>

说明:

<尖括号里的不是必须的,按你的具体情况来>

arg0:你的class或jar文件所在目录

arg1:你需要引入的jar文件,如果你已经在window的classpath里配置过或者不需要,那这句可以去掉

arg2:java类(*.class或*.jar)文件

arg3 arg4..:若干个参数,如没有也可以去掉

前提是你安装了jdk,并配置了环境变量