溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java怎么調用windows系統(tǒng)的CMD命令并啟動新程序

發(fā)布時間:2023-05-05 14:15:30 來源:億速云 閱讀:78 作者:iii 欄目:開發(fā)技術

這篇文章主要介紹“Java怎么調用windows系統(tǒng)的CMD命令并啟動新程序”,在日常操作中,相信很多人在Java怎么調用windows系統(tǒng)的CMD命令并啟動新程序問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java怎么調用windows系統(tǒng)的CMD命令并啟動新程序”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

我們通常在使用Java 調用腳本的時候,會使用 Runtime 類如:

// 打開瀏覽器并訪問 http://localhost:7001
Runtime.getRuntime().exec("cmd /c start http://localhost:8080");

這里我們使用到了終端 CMD

# 執(zhí)行字符串指定的命令,并在執(zhí)行命令后保留窗口
cmd /k echo "Hello World!"
# 執(zhí)行字符串指定的命令,然后退出
cmd /c echo "Hello World!"

start 命令

start命令是 cmd 終端提供的一個命令,通過該命令可以啟動單獨的窗口以運行指定的程序或命令。

# 創(chuàng)建一個新的 cmd 窗口
start cmd

如果單獨運行 start ,你會發(fā)現會報錯:

Runtime.getRuntime().exec("start http://localhost:8080");

Exception in thread “main” java.io.IOException: Cannot run program “start”: CreateProcess error=2, 系統(tǒng)找不到指定的文件。
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at java.lang.Runtime.exec(Runtime.java:621)
at java.lang.Runtime.exec(Runtime.java:451)
at java.lang.Runtime.exec(Runtime.java:348)
at com.example.Main3.main(Main3.java:22)
… 4 more

這是因為 start 命令是 cmd 終端中提供的一個命令,需要在 cmd 環(huán)境下執(zhí)行。
通過 Java 創(chuàng)建一個新的終端:

// 第一 cmd 命令用于創(chuàng)建環(huán)境執(zhí)行 start 命令
// cmd /k 表示在創(chuàng)建一個新的終端并保留該終端
Runtime.getRuntime().exec(String.format("cmd /c start cmd /k");

應用

我們可以在調試應用時在應用啟動后通過該命令讓其自動打開瀏覽器。

SpirngBootApplication.run(Application.class.args);
Runtime.getRuntime().exec("cmd /c start http://localhost:8080");

或者讓 Arthas 自動啟動連接當前應用。這個在做一些Java診斷工具的學習中會很有幫助,不需要我們手敲命令行去查找相關參數后才能能打開應用了。

RuntimeMXBean bean = ManagementFactory.getRuntimeMXBean();
String pid = bean.getName().split("@")[0];
String cmd = String.format("cmd /c start cmd /k D:\\arthas-bin\\as.bat %s", pid);
Runtime.getRuntime().exec(cmd);

到此,關于“Java怎么調用windows系統(tǒng)的CMD命令并啟動新程序”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注億速云網站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI