2

私の問題は、いつjarファイルを呼び出すかです

Runtime.getRuntime().exec() メソッド、私の .jar が実行されておらず、その出力が表示されていません

コーディングはこんな感じ

public static void main(String[] args) {

  String execJar = "java -jar C:\test.jar";       

  try {

      Process p = Runtime.getRuntime().exec(execJar);

  } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }       
}

この「java -jar C:\test.jar」をコマンド プロンプトで使用すると、.jar が実行されないため、System.out の出力が表示されません。これを機能させる方法を知っている人はいますか?

ありがとう。

4

4 に答える 4

0
 ProcessBuilder pb = new ProcessBuilder("java", "-Xmx1024m", "-Xms1024m",
         "-DTOOLS_DIR=C://", "-Daoi=whole", 
         "-jar", "C://calc.jar");
try {
    pb.start();
} catch (IOException ex) {
    System.out.print("EEE"+ex);
}

シンプルなパスがあるため、簡単に実行できるので、簡単に試して実行できます。

于 2013-04-30T09:01:09.070 に答える
0

どこSystem.outに行くと思いますか?

プロセスが生成されると、生成プロセスと生成プロセスの間で入力/出力ストリームとエラー ストリームが開かれます。入力とエラーを消費する必要があります(紛らわしい名前にもかかわらず、これらはプロセスの出力を表します)。そうしないと、生成されたプロセスがブロックされ、ストリームのコンテンツが消費されるのを待ちます。

詳細については、この回答を参照してください

于 2013-04-30T08:40:53.667 に答える
0
  ProcessBuilder pb = new ProcessBuilder("java", "-Xmx1024m", "-Xms1024m",
         "-DTOOLS_DIR=F://Net Beans Work Space//calc//dist", "-Daoi=whole", 
         "-jar", "F://Net Beans Work Space//calc//dist//calc.jar");

  pb.start();

このコードを使用すると、確実にjarファイルが実行されます。変更する必要があるのは、上記のコードのパスです。返信してください。うまくいきます。親切な返信に感謝します。

于 2013-04-30T08:54:00.767 に答える