0

アプリケーションを 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 ライブラリーです。

4

2 に答える 2

0

それを機能させるために私が見つけた方法は、jarとライブラリフォルダーを別々に生成することでした。これにより、.jar ファイルと、YourAppName_lib というディレクトリが生成されます。したがって、.bat では、PR_LIBRARYPATH を _lib フォルダーに設定する必要があり、それだけです。

于 2014-05-13T14:04:53.327 に答える
0

最終的に、依存ディレクトリを Eclipse から別のディレクトリにエクスポートしてみることにしました。これを行った後、LunaProvider.jar を含むすべての依存関係がそのディレクトリにダンプされました。install.bat ファイルの次の行を次のように変更しました。

set PR_CLASSPATH=C:\somepath\ECGIServer.jar;C:\somepath\ECGIServer_lib

そして、すべてがうまくいきました。理由はまだわかりません。

于 2013-01-03T18:58:17.017 に答える