操作系統(tǒng)(無論Linux還是Windows)有一種“管道”的概念,可以把一個(gè)程序的標(biāo)準(zhǔn)輸入/輸出改到其他的地方。 你說的那些GUI外殼,就是為命令行程序創(chuàng)建了一個(gè)管道,標(biāo)準(zhǔn)輸入和標(biāo)準(zhǔn)輸出被改到了GUI外殼程序的內(nèi)部。所以就不會(huì)再彈出命令行窗口了。 GUI外殼會(huì)根據(jù)你在窗口上的操作,通過管道,向命令行程序發(fā)送指令,就像你手動(dòng)在命令行窗口上敲命令一樣。 命令行程序的標(biāo)準(zhǔn)輸出也會(huì)通過管道傳送到GUI外殼的內(nèi)部,加以處理后在窗口上顯示個(gè)給你.
創(chuàng)新互聯(lián)公司是一家專業(yè)提供龍江企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、H5技術(shù)、小程序制作等業(yè)務(wù)。10年已為龍江眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。
在java程序中如何調(diào)用linux的命令?如何調(diào)用shell腳本呢?
這里不得不提到j(luò)ava的process類了。
process這個(gè)類是一個(gè)抽象類,封裝了一個(gè)進(jìn)程(你在調(diào)用linux的命令或者shell腳本就是為了執(zhí)行一個(gè)在linux下執(zhí)行的程序,所以應(yīng)該使用process類)。
process類提供了執(zhí)行從進(jìn)程輸入,執(zhí)行輸出到進(jìn)程,等待進(jìn)程完成,檢查進(jìn)程的推出狀態(tài),以及shut down掉進(jìn)程。
至于詳細(xì)的process類的介紹放在以后介紹。
另外還要注意一個(gè)類:Runtime類,Runtime類是一個(gè)與JVM運(yùn)行時(shí)環(huán)境有關(guān)的類,這個(gè)類是Singleton的。
這里用到的Runtime.getRuntime()方法是取得當(dāng)前JVM的運(yùn)行環(huán)境,也是java中唯一可以得到運(yùn)行環(huán)境的方法。(另外,Runtime的大部分方法都是實(shí)例方法,也就是說每次運(yùn)行調(diào)用的時(shí)候都需要調(diào)用到getRuntime方法)
下面說說Runtime的exec()方法,這里要注意的有一點(diǎn),就是public Process exec(String [] cmdArray, String [] envp);這個(gè)方法中cmdArray是一個(gè)執(zhí)行的命令和參數(shù)的字符串?dāng)?shù)組,數(shù)組的第一個(gè)元素是要執(zhí)行的命令往后依次都是命令的參數(shù),envp感覺應(yīng)該和C中的execve中的環(huán)境變量是一樣的,envp中使用的是name=value的方式。
下面說一下,如何使用process來調(diào)用shell腳本
例如,我需要在linux下實(shí)行l(wèi)inux命令:sh test.sh,下面就是執(zhí)行test.sh命令的方法:
這個(gè)var參數(shù)就是日期這個(gè)201102包的名字。
String shpath="/test/test.sh"; //程序路徑
Process process =null;
String command1 = “chmod 777 ” + shpath;
process = Runtime.getRuntime().exec(command1);
process.waitFor();
String var="201102"; //參數(shù)
String command2 = “/bin/sh ” + shpath + ” ” + var;
Runtime.getRuntime().exec(command2).waitFor();
你把要執(zhí)行文件的目錄在你說的profile里面聲明一下(路徑)。在path 加上pathmunge /home/test/out/bin/。生效指令source profile。改完后你可以用echo $PATH看看路徑是不是包含進(jìn)去了。(我這是fedora,可能不一樣)
當(dāng)前題目:linux如何封裝命令 Linux系統(tǒng)封裝
URL網(wǎng)址:http://aaarwkj.com/article32/hhhssc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊、標(biāo)簽優(yōu)化、、網(wǎng)站設(shè)計(jì)、商城網(wǎng)站、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)