① 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);
}
}