3

単にバッチ ファイルを実行するタスク (Windows タスク スケジューラを使用) をスケジュールしています。

このバッチは、単純な「Java -jar test.jar」で jar ファイル (Java プログラム) を実行しています。

コマンド ラインからスクリプトを手動で実行すると、Java プログラムは正常に実行され、例外は表示されません。

しかし、タスク スケジューラが同じことを行う (コマンドを呼び出す) と、Java プログラムは例外で終了します。

これはどのような原因が考えられますか?コマンドラインとタスクスケジューラからjarを呼び出すときの違いは何ですか?

ありがとう。

4

2 に答える 2

5

おそらく「現在のディレクトリ」が異なるため、Javaはjarをまったく見つけられないと思います。.bat の最初の行で、cd \path\that\you\expectJava を実行する前に a を実行できますか?

于 2012-12-31T09:54:03.760 に答える
2

jar依存関係はありますか?また、フォルダー構造と、コマンド ラインでどのように正確に実行するかを知っておくと役立ちます。
とにかく、ケースに応じて、次の行に沿って何かを行うことができます。

cd /path/to/exec/folder   // set current directory
java -cp /all-classpath-jars/and-or-bin-folders/ test.jar your.package.MainClass [args...]

必要なものをすべて正しく指定すれば、これは機能するはずです。

于 2012-12-31T10:06:07.943 に答える