Java程序執(zhí)行cmd命令全過(guò)程
編寫(xiě)程序?qū)崿F(xiàn)執(zhí)行cmd指令
1.1 思路分析
使用Process的exec()將cmd的執(zhí)行結(jié)果通過(guò)java的IO流輸出到IDE的控制臺(tái)即可。
Process的exec()方法。
看一下源碼,發(fā)現(xiàn)有好幾個(gè)構(gòu)造方法,傳單個(gè)cmd的,傳cmd數(shù)組的等。
public Process exec(String command) throws IOException {
return exec(command, null, null);
}public Process exec(String command, String[] envp) throws IOException {
return exec(command, envp, null);
}1.2 這里實(shí)現(xiàn)單個(gè)命令結(jié)果輸出
.cmd的指令是ping www.baidu.com.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class DosUtil {
public static void main(String[] args) {
// Java調(diào)用 dos命令
String cmd = "ping www.baidu.com";
try {
Process process = Runtime.getRuntime().exec(cmd);
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String content = br.readLine();
while (content != null) {
System.out.println(content);
content = br.readLine();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}運(yùn)行結(jié)果:(出現(xiàn)亂碼)

分析,dos窗口的編碼方式?jīng)]有指定嘛. 鼠標(biāo)右鍵(箭頭所指方向)點(diǎn)擊屬性.


清晰看到是GBK編碼. 如果要修改DOS的默認(rèn)編碼,使用如下指令.



再次修改回GBK的編碼方式.執(zhí)行以下命令.(當(dāng)前代碼頁(yè)). chcp 936

修改如下代碼位置,添加編碼參數(shù).

再次運(yùn)行程序.

dos下執(zhí)行.

修改dos下字體,顏色,布局的方式.

看到想修改的字體顏色,使用Windows自帶的畫(huà)圖工具,吸取顏色,獲取RGB顏色代碼值,設(shè)置就可以了.

簡(jiǎn)單總結(jié),使用Process類(lèi)的相應(yīng)方法執(zhí)行就可以了.
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java反應(yīng)式框架Reactor中的Mono和Flux
這篇文章主要介紹了Java反應(yīng)式框架Reactor中的Mono和Flux,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-07-07
Java實(shí)現(xiàn)PDF轉(zhuǎn)Word的示例代碼(無(wú)水印無(wú)頁(yè)數(shù)限制)
這篇文章主要為大家詳細(xì)介紹了如何利用Java語(yǔ)言實(shí)現(xiàn)PDF轉(zhuǎn)Word文件的效果,并可以無(wú)水印、無(wú)頁(yè)數(shù)限制。文中的示例代碼講解詳細(xì),需要的可以參考一下2022-05-05
SpringBoot+Spring?Data?JPA整合H2數(shù)據(jù)庫(kù)的示例代碼
H2數(shù)據(jù)庫(kù)是一個(gè)開(kāi)源的關(guān)系型數(shù)據(jù)庫(kù),本文重點(diǎn)給大家介紹SpringBoot+Spring?Data?JPA整合H2數(shù)據(jù)庫(kù)的示例代碼,感興趣的朋友跟隨小編一起看看吧2022-02-02
Java Web實(shí)現(xiàn)添加定時(shí)任務(wù)的方法示例
這篇文章主要介紹了Java Web實(shí)現(xiàn)添加定時(shí)任務(wù)的方法,涉及java web定時(shí)任務(wù)控制類(lèi)定義、調(diào)用及監(jiān)聽(tīng)器定義、添加等相關(guān)操作技巧,需要的朋友可以參考下2018-01-01
Java實(shí)現(xiàn)字符串轉(zhuǎn)換為十進(jìn)制ASCII碼的實(shí)戰(zhàn)指南
將Java字符串轉(zhuǎn)換為十進(jìn)制ASCII碼是文本處理、協(xié)議編碼、數(shù)據(jù)序列化和底層通信中的常見(jiàn)需求,下面我們就來(lái)看看具體的實(shí)現(xiàn)方法,希望對(duì)大家有所幫助2026-05-05
Spring?Security使用數(shù)據(jù)庫(kù)登錄認(rèn)證授權(quán)
本文主要介紹了Spring?Security使用數(shù)據(jù)庫(kù)登錄認(rèn)證授權(quán),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
RocketMQ消息存儲(chǔ)文件的加載與恢復(fù)機(jī)制源碼分析
這篇文章主要介紹了RocketMQ源碼分析之消息存儲(chǔ)文件的加載與恢復(fù)機(jī)制詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05

