首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

Java 呼叫 BAT 批處理不彈出 CMD 視窗的解決方案

     編輯:Java 程式設計入門

使用 Runtime.exec() 執行 Windows 批處理檔時,預設會彈出黑色 CMD 視窗,影響使用者體驗。只需在 start 參數後加上 /b 即可實現靜默執行。

問題重現

// 會彈出視窗
Runtime.getRuntime().exec("cmd.exe /C start D:\\test.bat");

解決方案

// 靜默執行,不彈窗
Runtime.getRuntime().exec("cmd.exe /C start /b D:\\test.bat");

完整範例:同步等待並獲取退出碼

Runtime rt = Runtime.getRuntime();
Process ps = null;
try {
    ps = rt.exec("cmd.exe /C start /b D:\\test.bat");
} catch (IOException e1) {
    e1.printStackTrace();
}

try {
    ps.waitFor();                 // 阻塞等待結束
    int exitCode = ps.exitValue(); // 獲取退出碼
    if (exitCode == 0) {
        System.out.println("執行完成。");
    } else {
        System.out.println("執行失敗,退出碼:" + exitCode);
    }
} catch (InterruptedException e) {
    Thread.currentThread().interrupt();
}

關鍵參數說明

參數作用
/C執行完指令字串後終止 CMD
start啟動獨立視窗執行程式
/b不建立新視窗,在當前控制台背景執行(關鍵)

進階建議

  • 若需捕獲輸出流,請使用 ProcessBuilder 重定向 stdout/stderr。
  • 涉及路徑空格時,務必用雙引號包裹:\"D:\\My Scripts\\test.bat\"。
  • Java 9+ 推薦使用 ProcessHandle 進行更精細的程序管理。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved