0

PDFからテキストを抽出するJavaSwingアプリケーションがあります。コマンドprompt(java -jar xyz.jar)を使用して実行するか、ダブルクリックしてjarを実行すると正常に動作しますが、Javaコードを使用して実行するとスタックします

Process asm = Runtime.getRuntime().exec("java -jar xyz.jar");
asm.waitFor();

またはプロセスビルダーを使用します。それは私のアプリケーションの例外によるものですか?わからない。

4

1 に答える 1

2

あなたはおそらく適切なディレクトリにいません。

ProcessBuilderのdirectory()メソッドを使用して、外部プロセスが正しい場所で実行され、jarが見つかるようにします。

ProcessBuilder processBuilder = new ProcessBuilder("java -jar xyz.jar");
processBuilder.redirectErrorStream(true);
processBuilder.directory(  complete this );
Process process = processBuilder.start();
String output = readOutput(process);
try {
    if (process.waitFor() != 0) {
        throw new IOException("command exited in error: " + process.exitValue() + "\n" + output);
    }
} catch (InterruptedException e) {
    e.printStackTrace();
}

これで問題が解決しない場合は、出力ストリーム(エラーストリームを含む)を印刷して、何が起こるかを確認してください。

于 2012-06-18T09:37:35.830 に答える