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)文章
Python文件高級(jí)操作函數(shù)之文件信息獲取與目錄操作
這篇文章主要介紹了Python文件高級(jí)操作函數(shù)之文件信息獲取與目錄操作,在Python中,內(nèi)置了文件(File)對(duì)象。在使用文件對(duì)象時(shí),首先需要通過(guò)內(nèi)置的open()方法創(chuàng)建一個(gè)文件對(duì)象,然后通過(guò)該對(duì)象提供的方法進(jìn)行一些基本文件操作,需要的朋友可以參考下2023-05-05零基礎(chǔ)入門(mén)學(xué)習(xí)——Spring Boot注解(一)
這篇文章主要介紹了Spring Boot注解學(xué)習(xí)(一)要點(diǎn),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-05-05Java使用正則表達(dá)式判斷字符串是否以字符開(kāi)始
這篇文章主要介紹了Java使用正則表達(dá)式判斷字符串是否以字符開(kāi)始的相關(guān)資料,需要的朋友可以參考下2017-06-06Netty之使用DelimiterBasedFrameDecoder進(jìn)行消息分隔詳解
這篇文章主要介紹了Netty之使用DelimiterBasedFrameDecoder進(jìn)行消息分隔詳解,在使用Netty進(jìn)行TCP消息傳輸時(shí),為了上層協(xié)議能夠?qū)ο⒄_區(qū)分,避免粘包和拆包導(dǎo)致的問(wèn)題,一般可以通過(guò)消息定長(zhǎng)、將回車(chē)換行符作為消息結(jié)束符,需要的朋友可以參考下2023-12-12Java實(shí)現(xiàn)生成pdf并解決表格分割的問(wèn)題
這篇文章主要為大家詳細(xì)介紹了如何利用Java實(shí)現(xiàn)生成pdf,并解決表格分割的問(wèn)題,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11Java實(shí)現(xiàn)分解任意輸入數(shù)的質(zhì)因數(shù)算法示例
這篇文章主要介紹了Java實(shí)現(xiàn)分解任意輸入數(shù)的質(zhì)因數(shù)算法,涉及java數(shù)學(xué)運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2017-10-10全網(wǎng)最深分析SpringBoot MVC自動(dòng)配置失效的原因
這篇文章主要介紹了全網(wǎng)最深分析SpringBoot MVC自動(dòng)配置失效的原因,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07Spring MVC的優(yōu)點(diǎn)與核心接口_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了Spring MVC的優(yōu)點(diǎn)與核心接口,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08如何使用Code128字體將文本轉(zhuǎn)換為code128條形碼
這篇文章主要介紹了如何使用Code128字體將文本轉(zhuǎn)換為code128條形碼 ,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-04