java怎么調(diào)用linux命令行呢?下面是java調(diào)用linux命令行的具體方法介紹:
java調(diào)用linux命令行有兩種調(diào)用方式。一種是直接調(diào)用linux命令,二是將linux命令寫到.sh腳本中,調(diào)用腳本執(zhí)行。
1、直接調(diào)用:
使用java中l(wèi)ang包下面的Runtime類和Process類,其中Runtime類中的Runtime.getRuntime().exec(linux command)方法可以直接執(zhí)行l(wèi)inux命令,而Process類可以接收Runtime.getRuntime().exec()類的返回值,并提供了waitFor()方法和destroy()方法,waitFor()方法的作用在于等待此process執(zhí)行完成后再執(zhí)行后面的內(nèi)容,destroy()方法作用在于銷毀process。
2、調(diào)用shell腳本:
直接調(diào)用方法存在一些弊端,比如復(fù)雜命令不好實(shí)現(xiàn)、有些命令莫名其妙實(shí)現(xiàn)不了等。因此我推薦使用調(diào)用shell腳本的方式實(shí)現(xiàn)linux命令。具體實(shí)現(xiàn)方法為:首先將命令寫在shell腳本(.sh)中,然后在Runtime.getRuntime().exec()中調(diào)用“sh path/.sh”,其中path為shell腳本的路徑。
實(shí)現(xiàn)案例如下圖所示:
其中imp.sh中的命令是:
1 name=$12 su - oracle -c "imp user/pwd@實(shí)例名 file=filepath full=y ignore=y"
該語句實(shí)現(xiàn)的功能為在root用戶下,切換到oracle目錄,并將某個(gè).dmp文件使用imp命令導(dǎo)入oracle數(shù)據(jù)庫,然后返回到root用戶下,將該語句放到for循環(huán)中實(shí)現(xiàn)了多個(gè).dmp文件導(dǎo)入oracle數(shù)據(jù)庫的功能。其中.dmp文件的文件名是變量,在shell命令中以name=$1代替,在linux命令中以${name}代指文件名,在調(diào)用時(shí)傳入該參數(shù)的值,linux命令中$1,$2…$n是占位變量,在使用變量時(shí)按順序使用,賦值時(shí)按照相應(yīng)的順序進(jìn)行賦值。
以上就是小編今天的分享了,希望可以幫助到大家。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com