[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends:00414] JavaService.exe によるサービス化時の classpath の渡し方



いつも大変お世話になっております。堀口@HISです。

 Javaアプリケーションを [JavaService.exe]を使用して
Windowsサービス化することを考えています。

JavaService.exe -install "My Service Name" c:\j2sdk1.4.1\jre\bin\client\jvm.dll -Djava.class.path=<classpath> -Xrs -start <MyServiceClass> -method main -params <my.properties> -out <mydir>\log\stdout.txt -err <mydir>\log\stderr.txt -current <mydir> -manual

 上記のパラメータで実行し、

(1)サービス登録は成功
(2)JavaService.exeのレジストリ
     「HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Services\ {SERVICE_NAME}\ Parameters」
   の内容を確認 ⇒ 正常(指定値は全て正しく登録されている)
(3)サービス起動 ⇒ 成功

までは正常なのですが、上記の<MyServiceClass>の実行中に
その中で参照しているクラスが「java.lang.NoClassDefFoundError」
となります。

 「-Djava.class.path=<classpath>」の指定が不正なのかと考え
pathの順序を変えるなどして試しましたが、状況は変わりません。

 また同じ<classpath>で、コマンドプロンプトから
   「 java  -Djava.class.path=<classpath>  <MyServiceClass> <my.properties>」
での実行では、「java.lang.NoClassDefFoundError」にはならずに正常動作します。

 JavaService.exeのサイトも見て見たのですが、有用な情報は
見つけられなかったです。

 上記について、知見をお持ちでしたらご教示願いたく、よろしく
お願いいたします。なお環境は以下です。


OS:  Windows 2000 Server Sp3
J2SDK: j2SdK  1.4.1
JavaService.exe: 1.2.3


以上














環境:
OS:WindowsXP Professional(SP1)
SDK:SDK1.4.1_03
IDE:Eclipse2.1.1

窪田