2016-11-11 9 views
-2

standfordはexeではありません。それはフォルダが、私は次の文を使用してCMD.EXEを開き、多くのプログラムアプリケーションを閉じる方法(standford:フォルダは多くのプログラムで構成されています)。 java ProcessBuilderランタイム

構成されています:

public static void runStanfordCMD() throws IOException{ 
     List<String> cmds = Arrays.asList("cmd.exe", "/C", "start", "java", "-mx4g", "-cp", "*", "edu.stanford.nlp.pipeline.StanfordCoreNLPServer"); 
     ProcessBuilder builder = new ProcessBuilder(cmds); 
     builder.directory(new File("D:/Desktop/stanford-corenlp-full-2015-12-09")); 
     Process proc = builder.start(); 

    } 

私はいくつかの工程を終えた後にcmd.exeを閉鎖するので、どのように?

ProcessBuilderまたはRuntimeを使用して??? ProcessBuilderを使用して私のケースに応じてステートメントを書く方法は?

私の場合に応じてランタイムに文を書く方法は?文を書くためにどのように

public static void closeStanfordCMD() throws IOException{ 
      try { 


       Runtime.getRuntime().exec("command.exe /C" + "Your command"); ??????how to write the statement??? 

      } catch (Exception e) { 
       e.printStackTrace(); 
      } 

    } 
+1

あなたが尋ねたので、私はいくつかの工程を終えた後にcmd.exeを閉じる方法??あなたのタイトルの質問は狂気です。どのプログラムをスタンダードフォルダ、またはスタンドフォードフォルダの下にあるプログラムを終了しますか? –

+2

[Javaを使用したプロセスを強制終了](http://stackoverflow.com/questions/6356340/killing-a-process-using-java) – ArcticLord

答えて

1

?????? ???

あなたは

Runtime.getRuntime().exec("taskkill /IM " + "standford.exe"); 

standford.exeを閉じたい場合は、コマンドプロンプトに

Runtime.getRuntime().exec("taskkill /IM " + "cmd.exe"); 


を閉じたい場合は、それがお役に立てば幸いです。

+0

重複している可能性があります。私のアプリケーションはそのアドレスを持っているからです。 CMDを閉じることができません – bob90937

+0

あなたのアプリケーション名で 'cmd.exe'を置き換えるとすぐにそれを閉じるでしょう。 – Lefteris008

+0

それは完全に動作します。 plsはあなたのプログラムについて再テストし、考えます。 –

1

Runtime.getRuntime().exec は、Processのオブジェクトを返します。

プロセスには、実行中のプロセスを終了させる方法destroy()があります。
あなたが必要とするのは、execメソッドによって返されたProcessオブジェクトを格納し、そのプロセスを強制終了するときにdestroy()を呼び出すことです。

また、waitFor()メソッドを呼び出してプロセスが停止するのを待つことができます(このProcessオブジェクトが表すプロセスが終了するまで、必要に応じて現在のスレッドを待ちます)。それを明確に、このコードを試してみてください(または、あなたのニーズに合わせて修正する)ようにするに

try { 
    Process p = Runtime.getRuntime().exec("java -mx4g -cp * D:/Desktop/stanford-corenlp-full-2015-12-09/edu.stanford.nlp.pipeline.StanfordCoreNLPServer"); 
    p.waitFor(); 
} 
catch (IOException e) { 
    e.printStackTrace(); 
} 
catch (InterruptedException e) { 
    e.printStackTrace(); 
} 
+0

いいえ、プログラムを閉じることはできません –

+0

まあ、cmd.exeを実行しないでください。その必要はありません。代わりに、execメソッドを使ってアプリケーションを直接実行する必要があります。たとえば、Runtime.getRuntime()。exec( "myapplication.exe")です。 –

+0

standfordは.exeではありません – bob90937

関連する問題