15

Windows7マシンで1日1回簡単なJAVAプログラムを実行しようとしています。

私のコードはNetBeans内で正常に実行されます。クリーンアップしてビルドすると、次のようになります。

C:\Program Files\Java\jdk1.7.0/bin/java -jar "C:\Users\User1\Documents\NetBeansProjects\Facebook\dist\Facebook.jar"

もちろん、プログラムとファイルの間にスペースがあるため、これはDOSプロンプトからは機能しません。

C:\Program Files\Java\jdk1.7.0/bin/java -jar "C:\Users\User1\Documents\NetBeansProjects\Facebook\dist\Facebook.jar" -jar "C:\Users\User1\Documents\NetBeansProjects\Facebook\dist\Facebook.jar"

これはDOSプロンプトから機能します。

次に、Windowsスケジューラで実行するタスクを作成します。

C:\Program Files\Java\jdk1.7.0/bin/java

引数付き:

-jar "C:\Users\User1\Documents\NetBeansProjects\Facebook\dist\Facebook.jar"

それを実行すると、DOSボックスが1秒間点滅するだけです。コードの実行には約30秒かかると思います。コードはデータをデータベースに永続化する必要があり、更新は行われません。

コードも使用してjava.util.loggingいるので、ログエントリを表示する必要がありますが、表示しません。

私はJAVAコマンドを正しく実行していないか、DOSプロンプトから実行しているときに存在しないScheduler経由で実行しているときに存在する悪いクラスパスの問題があることを強く疑っています。

助けていただければ幸いです。これを以前に見たことがあり、並べ替えることができれば、それは素晴らしいことです。スケジューラから意味のあるエラートレースを取得する方法を教えていただければ、それも非常に役立ちます。

ありがとう!

4

4 に答える 4

17

この方法でプログラムを起動する簡単なバッチスクリプトを作成できると思います。

@echo off
REM Eventually change directory to the program directory 
cd C:\Users\User1\Documents\NetBeansProjects\Facebook\dist\
REM run the program
"C:\Program Files\Java\jdk1.7.0\bin\java.exe" -jar "C:\Users\User1\Documents\NetBeansProjects\Facebook\dist\Facebook.jar"

それをメモ帳にコピーしてjava_script.cmdとして保存し、プログラムの代わりにこのスクリプトを直接スケジュールします。

于 2012-08-20T08:53:56.393 に答える
1

すべてのフォントの参照を「SansSerif」に変更した後、解決しました

私はJava内でJasperReportsを使用してPDFファイルを作成していました。Windows Server 2003でバッチファイルまたはスケジューラをダブルクリックすると正常に機能していましたが、2008のスケジューラでは機能しませんでした。

私はさまざまなことを試しましたが、何も機能しませんでしたが、Windows Server 2008がアクセスをブロックしている可能性がありますか?

今は完璧に機能しています。したがって、問題が発生した場合は、使用しているものへの参照を確認してください。

于 2012-12-13T19:44:31.507 に答える
0

実行するユーザーを指定しない限り、スケジューラーは別のユーザーで実行されます。ユーザーとして実行されていない場合は、ディレクトリに書き込むことができません。

于 2012-08-20T08:51:52.270 に答える
0

元の質問に対する本当の問題は、MicrosoftシステムでのJavaインストールの問題です。JavajreはProgramFiles\javaにインストールされます。実行可能ファイル(java.exe)は、そのjava\binディレクトリにのみインストールされます。コマンドラインから実行すると、osはjava.exeの適切な場所を検索します。他のMSツール(VBA Excelやこの場合はTaskSchedulerなど)から実行しても、実行されません。

TaskSchedulerツールでタスク履歴を表示すると、TaskSchedulerが間違った場所を探していることがわかります。履歴イベントのいくつかをダブルクリックすると、アクションとリターンコードが一覧表示されます。アクションは、TaskSchedulerが実行しようとしていることを示します

"C:\Windows\system32\java.EXE"

TaskSchedulerの履歴の詳細

したがって、java.exeをjava \ binディレクトリからスケジューラが探している場所にコピーすると、動作するようになります。

または、タスクを更新して、java.exeへのフルパスを指定します。

環境システムパスを更新して、java \ binディレクトリでjavaを探すこともできますが、これはすべてのユーザーに適用する必要があり、これにも問題がある場合があります。

于 2015-05-20T19:18:01.900 に答える