出典:
輸入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); } }