① java执行调用.bat
Processmakemenuconfig=Runtime.getRuntime().exec("cmd.exe/kstartc:\\text1.bat"+"参数名");这里调用系统命令行打开一个控制台窗口即cmd.exe,其中/k参数是让结果执行完毕之后不关闭cmd命令行窗口,改为/c则自动关闭,在cmd命令行中使用start命令打开一个批处理文件,批处理文件后面跟的即是参数
② java调用bat文件传入参数,急,急,急!
java好像不能直接给bat文件传参数,不过你可以先生成一个你需要的bat文件,再去执行这个bat文件,我就是这么做的,给你写了个例子,你参考下(你先在d盘下建一个text.txt)
public class DelFile {
public void creatBat(String command){
FileWriter fw=null;
try {
fw=new FileWriter("D:\\del.bat");
fw.write(command);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.exit(0);
}finally{
if(fw!=null){
try {
fw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.exit(0);
}
}
}
}
private String execute(String batname){
Process process;
String line = null;
StringBuffer sb=new StringBuffer();
try {
process = Runtime.getRuntime().exec(batname);
InputStream fis = process.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
while ((line = br.readLine()) != null) {
System.out.println(line);
}
if(process.waitFor()!=0){
System.out.println("fail");
return "fail";
}
System.out.println(batname+" run successful!");
return "success";
} catch (Exception e) {
e.printStackTrace();
return "fail";
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
DelFile df=new DelFile();
df.creatBat("del D:\\text.txt");
df.execute("D:\\del.bat");
}
}
③ JAVA执行BAT文件,请求高手帮助。。。。
我当时解决的办法是。
p.getOutputStream()
p.getErrorStream()
都不停地往外读取内容。
原因是这样的,bat命令输出的内容会输出到一块缓冲区内存中。
如果你不及时读取出来,当缓冲区内存满了以后,
bat命令会停止执行。
所以办法就是要把执行bat命令的输出内容读取出来,不能让缓冲区满。
④ Java中如何调用bat,并传入参数
如果能动态指定bat文件中参数更好。例如: 1.bat中> java -cp Chart2D这里有调用windows程序的例子,你可以参考一下,就在调用的地方吧你的bat文件
⑤ Java调用bat文件 %cd%改变
试试把%cd%改成%0看。
%0是批处理本身的完整路径【包含文件名】
%~dp0 则是批处理的完整目录【不包含文件各】
⑥ java执行bat文件问题
Processprocess=
Runtime.getRuntime().exec("cmd/crun.bat");//要执行的文件的路径为run.bat
//得到输入流
InputStreaminputStream=process.getInputStream();
=newInputStreamReader(inputStream);
BufferedReaderbufferedReader=newBufferedReader(inputStreamReader);
//得到输出流
OutputStreamoutputStream=process.getOutputStream();
=newOutputStreamWriter(outputStream);
BufferedWriterbufferedWriter=newBufferedWriter(outputStreamWriter);
bufferedWriter.write("dd ");
bufferedWriter.flush();
Stringtemp=null;
while((temp=bufferedReader.readLine())!=null)
{
System.out.println(temp);
}
}