亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

java運行shell腳本方法示例

2019-11-26 15:51:54
字體:
來源:轉載
供稿:網友


現在通過CommandHelper.execute方法可以執行命令,該類實現

復制代碼 代碼如下:

package javaapplication3;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
 *
 * @author chenshu
 */
public class CommandHelper {
    //default time out, in millseconds
    public static int DEFAULT_TIMEOUT;
    public static final int DEFAULT_INTERVAL = 1000;
    public static long START;
    public static CommandResult exec(String command) throws IOException, InterruptedException {
        Process process = Runtime.getRuntime().exec(command);
        CommandResult commandResult = wait(process);
        if (process != null) {
process.destroy();
        }
        return commandResult;
    }
    private static boolean isOverTime() {
        return System.currentTimeMillis() - START >= DEFAULT_TIMEOUT;
    }
    private static CommandResult wait(Process process) throws InterruptedException, IOException {
        BufferedReader errorStreamReader = null;
        BufferedReader inputStreamReader = null;
        try {
errorStreamReader = new BufferedReader(new InputStreamReader(process.getErrorStream()));
inputStreamReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
//timeout control
START = System.currentTimeMillis();
boolean isFinished = false;
for (;;) {
if (isOverTime()) {
CommandResult result = new CommandResult();
result.setExitValue(CommandResult.EXIT_VALUE_TIMEOUT);
result.setOutput("Command process timeout");
return result;
}
if (isFinished) {
CommandResult result = new CommandResult();
result.setExitValue(process.waitFor());
//parse error info
if (errorStreamReader.ready()) {
StringBuilder buffer = new StringBuilder();
String line;
while ((line = errorStreamReader.readLine()) != null) {
buffer.append(line);
}
result.setError(buffer.toString());
}
//parse info
if (inputStreamReader.ready()) {
StringBuilder buffer = new StringBuilder();
String line;
while ((line = inputStreamReader.readLine()) != null) {
buffer.append(line);
}
result.setOutput(buffer.toString());
}
return result;
}
try {
isFinished = true;
process.exitValue();
} catch (IllegalThreadStateException e) {
// process hasn't finished yet
isFinished = false;
Thread.sleep(DEFAULT_INTERVAL);
}
}
        } finally {
if (errorStreamReader != null) {
try {
errorStreamReader.close();
} catch (IOException e) {
}
}
if (inputStreamReader != null) {
try {
inputStreamReader.close();
} catch (IOException e) {
}
}
        }
    }
}

CommandHelper類使用了CommandResult對象輸出結果錯誤信息。該類實現

復制代碼 代碼如下:

package javaapplication3;
/**
 *
 * @author chenshu
 */
public class CommandResult {
    public static final int EXIT_VALUE_TIMEOUT=-1;
    private String output;
    void setOutput(String error) {
        output=error;
    }
    String getOutput(){
        return output;
    }
    int exitValue;
    void setExitValue(int value) {
        exitValue=value;
    }
    int getExitValue(){
        return exitValue;
    }
    private String error;
    /**
     * @return the error
     */
    public String getError() {
        return error;
    }
    /**
     * @param error the error to set
     */
    public void setError(String error) {
        this.error = error;
    }
}

現在看看調用代碼的演示(main函數接受一個超時參數):

復制代碼 代碼如下:

public static void main(String[] args) {
        try {
int timeout = Integer.parseInt(args[0]);
CommandHelper.DEFAULT_TIMEOUT = timeout;
CommandResult result = CommandHelper.exec("mkdir testdir");
if (result != null) {
System.out.println("Output:" + result.getOutput());
System.out.println("Error:" + result.getError());
}
        } catch (IOException ex) {
System.out.println("IOException:" + ex.getLocalizedMessage());
        } catch (InterruptedException ex) {
System.out.println("InterruptedException:" + ex.getLocalizedMessage());
        }
    }

結果會創建一個testdir目錄。
我嘗試用這種方法創建通過ssh登錄到遠程機器,遇到兩個問題:
1)如果希望沒有人機對話方式,則需要使用命令sshpass -p password ssh user@targetIP 'command'
2) 在NetBeans上直接運行工程是不行的,因為權限不夠,需要在終端里運行java javaapplication3.Main
3) 很多命令不能運行,只有如pwd等命令可以運行,原因還不清楚,最好改用Ganymed SSH-2庫或者其他類似Java庫,我會在下一篇文章中介紹如何使用。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美国产日韩一区二区在线观看| 国产免费一区二区三区在线观看| 欧美大片在线影院| 久久久精品一区二区| 黑人狂躁日本妞一区二区三区| 国产精品一区专区欧美日韩| 中文字幕久热精品在线视频| 成人黄在线观看| 亚洲欧洲成视频免费观看| 91亚洲精品久久久| 成人精品视频在线| 亚洲国产精品一区二区三区| 久久在线视频在线| 中日韩美女免费视频网址在线观看| 欧美精品成人91久久久久久久| 欧美日韩福利在线观看| 国产精品久久久久久久久免费看| 亚洲国产一区二区三区在线观看| 视频在线观看99| 久久久天堂国产精品女人| 亚洲free性xxxx护士白浆| www.日韩免费| 美乳少妇欧美精品| 91在线视频九色| 成人中文字幕+乱码+中文字幕| 欧美性xxxxxx| 亚洲精品在线视频| 欧美黄色小视频| 欧美在线一区二区视频| 91免费在线视频网站| 98精品在线视频| 日韩视频免费观看| 国产97人人超碰caoprom| 久久成年人免费电影| 欧美日韩国产专区| 国产精品一区二区三区久久| 色视频www在线播放国产成人| 免费不卡欧美自拍视频| wwwwwwww亚洲| 精品久久久中文| 国内精品在线一区| 中文字幕在线看视频国产欧美在线看完整| 一区二区三区美女xx视频| 人体精品一二三区| 精品无人区乱码1区2区3区在线| 久久九九国产精品怡红院| 一区二区中文字幕| 日本aⅴ大伊香蕉精品视频| 亚洲精品资源美女情侣酒店| 日韩精品福利在线| 在线色欧美三级视频| 一区二区三区视频免费在线观看| 久久国产精品影片| 欧美日韩不卡合集视频| 日韩精品免费电影| 国产自摸综合网| 色综合影院在线| 日韩av免费看网站| 亚洲小视频在线| 精品视频在线播放色网色视频| 欧美日韩国产在线看| 亚洲第一中文字幕| 久久精品2019中文字幕| 亚洲综合日韩中文字幕v在线| 国产精品久久久久久久久久三级| 综合网中文字幕| 欧美美女15p| 日韩在线不卡视频| 色噜噜狠狠狠综合曰曰曰88av| 久久久久久av| 欧美在线中文字幕| 欧美性猛交丰臀xxxxx网站| 91精品国产综合久久香蕉最新版| 色多多国产成人永久免费网站| 一区二区中文字幕| 136fldh精品导航福利| 久久久在线观看| 国产成人精彩在线视频九色| 国色天香2019中文字幕在线观看| 正在播放亚洲1区| 欧美日韩亚洲一区二区| 原创国产精品91| 91精品国产综合久久香蕉| 日韩电影中文字幕在线观看| 亚洲成人激情小说| 成人在线播放av| 91成人国产在线观看| 亚洲国产99精品国自产| 国产福利视频一区二区| 欧美午夜女人视频在线| 九九久久国产精品| 成人黄色av网站| 日韩中文字幕在线视频播放| 91麻豆桃色免费看| 性亚洲最疯狂xxxx高清| 国自在线精品视频| 亚洲国产成人精品电影| 在线电影中文日韩| 亚洲精品国偷自产在线99热| 一区二区亚洲精品国产| 亚洲成av人片在线观看香蕉| 日韩欧美中文字幕在线播放| 成人亚洲激情网| 久久久久久12| 国产成人久久久| 亚洲国模精品一区| 97国产精品视频| 国产成人小视频在线观看| 亚洲另类图片色| 国产精品久久久久久搜索| 亚洲男人7777| 国产盗摄xxxx视频xxx69| 亚洲福利视频免费观看| 97成人超碰免| 色香阁99久久精品久久久| 欧美激情一二区| 伊人久久男人天堂| 欧美成人中文字幕| 久久精品国产欧美亚洲人人爽| 亚洲小视频在线观看| 日本一区二区三区四区视频| 在线观看日韩www视频免费| 狠狠躁夜夜躁久久躁别揉| 欧美日本精品在线| 青草成人免费视频| 欧美成人剧情片在线观看| 国产精品丝袜白浆摸在线| 亚洲美女av电影| 福利一区视频在线观看| 日韩电影网在线| 成人午夜在线视频一区| 色综合伊人色综合网站| 欧美最近摘花xxxx摘花| xxx一区二区| 91久久在线视频| 国产精品18久久久久久麻辣| 97视频在线观看视频免费视频| 久久天天躁夜夜躁狠狠躁2022| 久热99视频在线观看| www.日韩欧美| 久久天天躁狠狠躁夜夜躁2014| 性色av一区二区三区红粉影视| 亚洲国产欧美精品| 日本精品久久电影| 欧美福利在线观看| 九色精品美女在线| 日韩资源在线观看| 日韩欧美中文免费| 欧美精品18videos性欧美| 精品福利在线观看| 欧美亚洲激情视频| 国产女人18毛片水18精品| 久久久久久久久久av| 欧美午夜精品久久久久久人妖| www.99久久热国产日韩欧美.com| 中文字幕不卡av| 亚洲va久久久噜噜噜| 欧美黑人又粗大| 国产精品亚洲视频在线观看| 2019中文字幕在线| 国产欧美日韩专区发布| 精品高清美女精品国产区| 欧美精品一区在线播放| 欧美日韩成人在线播放|