在java程序中如何調(diào)用linux的命令?如何調(diào)用shell腳本呢?

成都創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、網(wǎng)站制作、莒縣網(wǎng)絡(luò)推廣、重慶小程序開發(fā)、莒縣網(wǎng)絡(luò)營銷、莒縣企業(yè)策劃、莒縣品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供莒縣建站搭建服務(wù),24小時服務(wù)熱線:18982081108,官方網(wǎng)址:chinadenli.net
這里不得不提到j(luò)ava的process類了。
process這個類是一個抽象類,封裝了一個進程(你在調(diào)用linux的命令或者shell腳本就是為了執(zhí)行一個在linux下執(zhí)行的程序,所以應(yīng)該使用process類)。
process類提供了執(zhí)行從進程輸入,執(zhí)行輸出到進程,等待進程完成,檢查進程的推出狀態(tài),以及shut down掉進程。
至于詳細的process類的介紹放在以后介紹。
另外還要注意一個類:Runtime類,Runtime類是一個與JVM運行時環(huán)境有關(guān)的類,這個類是Singleton的。
這里用到的Runtime.getRuntime()方法是取得當(dāng)前JVM的運行環(huán)境,也是java中唯一可以得到運行環(huán)境的方法。(另外,Runtime的大部分方法都是實例方法,也就是說每次運行調(diào)用的時候都需要調(diào)用到getRuntime方法)
下面說說Runtime的exec()方法,這里要注意的有一點,就是public Process exec(String [] cmdArray, String [] envp);這個方法中cmdArray是一個執(zhí)行的命令和參數(shù)的字符串?dāng)?shù)組,數(shù)組的第一個元素是要執(zhí)行的命令往后依次都是命令的參數(shù),envp感覺應(yīng)該和C中的execve中的環(huán)境變量是一樣的,envp中使用的是name=value的方式。
下面說一下,如何使用process來調(diào)用shell腳本
例如,我需要在linux下實行l(wèi)inux命令:sh test.sh,下面就是執(zhí)行test.sh命令的方法:
這個var參數(shù)就是日期這個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();
操作系統(tǒng)(無論Linux還是Windows)有一種“管道”的概念,可以把一個程序的標(biāo)準(zhǔn)輸入/輸出改到其他的地方。 你說的那些GUI外殼,就是為命令行程序創(chuàng)建了一個管道,標(biāo)準(zhǔn)輸入和標(biāo)準(zhǔn)輸出被改到了GUI外殼程序的內(nèi)部。所以就不會再彈出命令行窗口了。 GUI外殼會根據(jù)你在窗口上的操作,通過管道,向命令行程序發(fā)送指令,就像你手動在命令行窗口上敲命令一樣。 命令行程序的標(biāo)準(zhǔn)輸出也會通過管道傳送到GUI外殼的內(nèi)部,加以處理后在窗口上顯示個給你.
你把要執(zhí)行文件的目錄在你說的profile里面聲明一下(路徑)。在path 加上pathmunge /home/test/out/bin/。生效指令source profile。改完后你可以用echo $PATH看看路徑是不是包含進去了。(我這是fedora,可能不一樣)
文章標(biāo)題:linux封裝命令 linux封裝函數(shù)
新聞來源:http://chinadenli.net/article2/doecsic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、關(guān)鍵詞優(yōu)化、網(wǎng)站設(shè)計、營銷型網(wǎng)站建設(shè)、虛擬主機、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)