Javaコードが近いスレッド上で(nginxの)

出典:

輸入java.io.BufferedReader;
インポートにjava.io.IOException;
輸入java.io.InputStreamReader。

パブリック クラスOpenDemo {
     / ** 
     * @desc启动进程
     * / 
    パブリック 静的な 無効のstartproc(文字列ProcessNameの){ 
        System.out.printlnは( "开启进程:" + ProcessNameの); 

        // Desktop.getDesktop()オープン(新しいファイル(ProcessNameの))。
        してみてください{ 
            executeCmd( "タスクリスト/ FI" + "\" imagenameのEQ nginx.exe \ "" ); 
            executeCmd(ProcessNameの)。
        } キャッチ(IOExceptionを電子){
            System.err.println(ProcessNameのを "オープンスレッドが失敗しました" + ); 
            e.printStackTrace(); 
        } 
    } 

    / ** 
     *プロセスを殺す@desc 
     * / 
    パブリック 静的 ボイドkillproc(文字列ProcessNameの){ 
        System.out.printlnは( "プロセス: "+ ProcessNameの);
         試み{ 
            executeCmd( " taskkill / F. / IM "+ ProcessNameの); 
        } キャッチ(IOExceptionをE){ 
            e.printStackTrace(); 
            System.err.println(ProcessNameの +"オフスレッド失敗」) ; 
        } 
    } 

    / **
     * @desc执行CMD命令
     * / 
    パブリック ){静的文字列executeCmd(stringコマンド)がスローにIOException { 
        ランタイムランタイム = Runtime.getRuntime()。
        プロセス処理 =のRuntime.exec( "CMD / C" + コマンド)。
        BufferedReaderのBR = 新しい BufferedReaderの(新しい InputStreamReaderの(process.getInputStream()、 "UTF-8" )); 
        文字列の行 = nullを
        StringBuilderのビルド = 新しいStringBuilderの();
        しばらく((ライン= br.readLine())!= nullで
            のSystem.out.println(ライン);
            build.append(ライン)。
        } 
        を返す)(build.toStringします。
    } 

    / ** 
     * @desc判断进程是否开启
     * / 
    パブリック 静的 ブールfindProcess(文字列ProcessNameの){ 
        BufferedReaderのBufferedReaderの = NULL ;
        試す{ 
            プロセスPROC。= Runtime.getRuntime()EXEC( "タスクリスト-fi" + ' "' + "imagenameの当量を" + ProcessNameの+ '"' ); 
            BufferedReaderの = 新しいをBufferedReader(新しい InputStreamReaderの(proc.getInputStream()));
            文字列の行 = nullを一方、 {((ライン=はBufferedReader.readLine())!= NULL ){
                 場合(line.contains(ProcessNameの)){
                     戻り 
                } 
            } 
            を返す 
        } キャッチ(例外例){ 
            ex.printStackTrace(); 
            返す ; 
        } 最後に{
             場合(BufferedReaderの=!ヌル){
                 しようと
                    bufferedReader.closeを(); 
                } キャッチ(例外例){
                } 
            } 
        } 
    } 

    / ** 
     *印刷の進行状況
     * 
     * @param programName1
      * / 
    パブリック 静的 ボイドlogstatus(文字列programName1){
         ブールフラグ=においてfindProcess(programName1);
         IF (フラグに){ 
            するSystem.out.println(programName1 + "プロセスの状態:オープン" ); 
        } { 
            のSystem.out.println(programName1 + "処理ステータス:閉じます"); 
        } 
    } 

    パブリック 静的 ボイドメイン(文字列[]引数){ 

        文字列programName1 = "nginx.exe" ; 
        文字列のProgramName = "E:\\ \\ nginx.exe nginxの-1.17.2" ; 

        logstatus(programName1); 

        / / シャットダウンプロセス
        killproc(programName1); 

        logstatus(programName1); 

        // オープンプロセス
        のstartproc(のProgramName); 

        logstatus(programName1); 

    } 

}

 

おすすめ

転載: www.cnblogs.com/excellencesy/p/11261000.html