0

重複の可能性:
Java プログラムで別の jar を実行する

別の Java アプリケーション内から Java アプリケーションで の jar ファイルを実行しようとしましたが、動作しません。私のコードは以下です

// run Jar in other java application
Runtime run=Runtime.getRuntime();           
run.exec("java -jar ManichemManagerRotas BatchProcess 8 2012");

manichemmanagerrotas.jar3 つの引数で実行しようとしています。

すべてのメソッドを実行できますが、まだ機能しません。問題は、jar ファイルのメイン メソッド クラスを実行できないことです。この問題について何らかの考えがある場合は、再生してください。これは私にとって重要なタスクです。

私はjarファイルを実行しようとしましたが、エラーは次のとおりです:jarファイルにアクセスできません ManichemManagerRotas

4

5 に答える 5

1

不足している.jarを追加してみてください:

Runtime run=Runtime.getRuntime();            
run.exec("java -jar ManichemManagerRotas.jar BatchProcess 8 2012");

...そして、プロセス出力を消費する必要があります...次のように:

InputStream in = run.getInputStream();
InputStream err = run.getErrorStream();
于 2012-09-05T10:01:26.010 に答える
0

別のクラス手段からJavaクラス/関数を呼び出す場合は、それをjarとして作成し、プロジェクトのビルドパスにjarを追加します。別のクラスでは、Jaredクラスのオブジェクトを作成し、関数を呼び出します。(クラスと関数がパブリックアクセスであることを確認してください)

于 2012-09-05T09:59:25.853 に答える
0

.jarと入力するのを忘れた可能性があります

run.exec("java -jar ManichemManagerRotas.jar BatchProcess 8 2012"); 
于 2012-09-05T09:59:50.173 に答える
0

変更せずに出力をファイルに書き込むだけの場合は、次を追加できます。

> somefile.txt

「コマンド」の最後に:

run.exec("java -jar ManichemManagerRotas.jar BatchProcess 8 2012 > somefile.txt");
于 2012-09-05T10:13:39.503 に答える
0

Runtime.exec(...)メソッドはインスタンスを返しますjava.lang.ProcessgetInputStream()そのメソッドを呼び出すだけです。

Process p = run.exec("java -jar ManichemManagerRotas.jar BatchProcess 8 2012");
InputStream is = p.getInputStream();
于 2012-09-05T10:03:29.080 に答える