アプリケーションを Eclipse から 1 つの大きなパッケージとしてエクスポートしたので、Eclipse ローダーが使用されます。install.bat ファイルを使用して procrun でインストールしました。最も重要な行を以下に示します。
set PR_CLASSPATH=C:\somepath\ECGIServer.jar
set PR_LIBRARYPATH=C:\somepath\native\lunaLibrary.dll
set PR_STARTMODE=jvm
set PR_STOPMODE=jvm
明らかにもっと多くの機能があり、サービスは実行されます。ECGIServer.jar ファイル内のマニフェスト ファイルは次のとおりです。
Manifest-Version: 1.0
Rsrc-Class-Path: ./ commons-codec-1.6.jar stax-api-1.0-2.jar LunaProvider.jar
Class-Path: .
Rsrc-Main-Class: ecgi.encrypter.ECgiServer
Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader
リストするjarは他にもありますが、書くには多すぎます。とにかく、コマンド ラインで (ECGIServer.jar) を実行すると、うまく機能します。サービスとして実行すると、LunaProvider のインスタンスを作成しようとするまで実行されます。アプリケーションが LunaProvider のインスタンスを作成すると、次のようになります。
java.lang.NoClassDefFoundError: com/safenetinc/luna/provider/LunaProvider
ご覧のとおり、LunaProvider は、私の Eclipse セットアップから取り込まれたばかりの ThridParty ライブラリーです。