以下方法支持Linux和windows兩個(gè)系統(tǒng)的命令行調(diào)用。還用到了apache的lang工具包c(diǎn)ommons-lang3-3.1.jar來(lái)判斷操作系統(tǒng)類型、也用到了和log4j-1.2.16.jar來(lái)打印日志。至于rm -rf 是否能成功刪除文件,可以手動(dòng)去調(diào)用命令行試試。
主要從事網(wǎng)頁(yè)設(shè)計(jì)、PC網(wǎng)站建設(shè)(電腦版網(wǎng)站建設(shè))、wap網(wǎng)站建設(shè)(手機(jī)版網(wǎng)站建設(shè))、成都響應(yīng)式網(wǎng)站建設(shè)公司、程序開(kāi)發(fā)、微網(wǎng)站、成都小程序開(kāi)發(fā)等,憑借多年來(lái)在互聯(lián)網(wǎng)的打拼,我們?cè)诨ヂ?lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)積累了豐富的網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作、網(wǎng)絡(luò)營(yíng)銷經(jīng)驗(yàn),集策劃、開(kāi)發(fā)、設(shè)計(jì)、營(yíng)銷、管理等多方位專業(yè)化運(yùn)作于一體,具備承接不同規(guī)模與類型的建設(shè)項(xiàng)目的能力。
private?String?callCmd(String?cmd)?throws?InterruptedException,?UnHandledOSException,?ExecuteException?{
if(SystemUtils.IS_OS_LINUX){
try?{
//?使用Runtime來(lái)執(zhí)行command,生成Process對(duì)象
Process?process?=?Runtime.getRuntime().exec(
new?String[]?{?"/bin/sh",?"-c",?cmd?});
int?exitCode?=?process.waitFor();
//?取得命令結(jié)果的輸出流
InputStream?is?=?process.getInputStream();
//?用一個(gè)讀輸出流類去讀
InputStreamReader?isr?=?new?InputStreamReader(is);
//?用緩沖器讀行
BufferedReader?br?=?new?BufferedReader(isr);
String?line?=?null;
StringBuilder?sb?=?new?StringBuilder();
while?((line?=?br.readLine())?!=?null)?{
System.out.println(line);
sb.append(line);
}
is.close();
isr.close();
br.close();
return?sb.toString();
}?catch?(java.lang.NullPointerException?e)?{
System.err.println("NullPointerException?"?+?e.getMessage());
logger.error(cmd);
}?catch?(java.io.IOException?e)?{
System.err.println("IOException?"?+?e.getMessage());
}
throw?new?ExecuteException(cmd?+?"執(zhí)行出錯(cuò)!");
}
if(SystemUtils.IS_OS_WINDOWS){
Process?process;
try?{
//process?=?new?ProcessBuilder(cmd).start();
String[]?param_array?=?cmd.split("[\\s]+");
ProcessBuilder?pb?=?new?ProcessBuilder(param_array);
process?=?pb.start();
/*process=Runtime.getRuntime().exec(cmd);*/
int?exitCode?=?process.waitFor();
InputStream?is?=?process.getInputStream();
InputStreamReader?isr?=?new?InputStreamReader(is);
BufferedReader?br?=?new?BufferedReader(isr);
String?line;
StringBuilder?sb?=?new?StringBuilder();
while?((line?=?br.readLine())?!=?null)?{
System.out.println(line);
sb.append(line);
}
is.close();
isr.close();
br.close();
return?sb.toString();
}?catch?(IOException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}
throw?new?ExecuteException(cmd?+?"執(zhí)行出錯(cuò)!");
}
throw?new?UnHandledOSException("不支持本操作系統(tǒng)");
}
執(zhí)行l(wèi)inux命令基,基本思路是從控制臺(tái)獲得輸入的指令,啟動(dòng)命令行執(zhí)行命令,捕捉異常,示例如下:
public?class?TestRunTime?{
public?static?void?main(String[]?args)?throws?IOException,?InterruptedException?{
String?cmd?=?"";
if(args?==?null?||?args.length?==?0){
System.out.println("請(qǐng)輸入命令行參數(shù)");
}else{
for(int?i=0;iargs.length;?i++){//獲得輸入的命令
cmd?+=?args[i]?+?"?";
}
}
try?{
Process?process?=?Runtime.getRuntime().exec(cmd);//執(zhí)行命令
InputStreamReader?ir?=?new?InputStreamReader(process.getInputStream());
LineNumberReader?input?=?new?LineNumberReader(ir);
String?line;
while?((line?=?input.readLine())?!=?null)?{//輸出結(jié)果
System.out.println(line);
}
}?catch?(java.io.IOException?e)?{
System.err.println("IOException?"?+?e.getMessage());//捕捉異常
}
}
}
1.
將文件壓縮為 .gz 格式,只能壓縮文件:gzip ①、命令名稱:gzip ②、英文原意:GNU zip ③、命令所在路徑:/bin/gzip ④、執(zhí)行權(quán)限:所有用戶 ...
2.
將 .gz 文件解壓:gunzip
命令名稱:gunzip
名稱欄目:java寫(xiě)linux命令 java代碼執(zhí)行l(wèi)inux命令
分享URL:http://muchs.cn/article16/ddiecdg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、域名注冊(cè)、移動(dòng)網(wǎng)站建設(shè)、搜索引擎優(yōu)化、ChatGPT、全網(wǎng)營(yíng)銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)