質問

いくつかのサードパーティのライブラリと、JNI 経由で呼び出される DLL に依存する Java アプレットを作成しました。これらは明らかにクライアント コンピュータにはインストールされません。いずれにせよ、これらのサードパーティのライブラリと外部 DLL をアプレットの JAR 内にパッケージ化して、基本的な Java インストールを持つクライアントで実行できるようにすることはできますか?

役に立ちましたか?

解決

Web アプリケーション内で JNI を使用すると、特に Windows では胸焼けが起こりやすくなります。

  • 明らかに、WAR ファイル内に DLL をデプロイすることはできず、おそらく事前にデプロイヤーによって別のインストーラーを実行する必要があります。
  • 次のことを確認する必要があります。 java.library.path 正しくセットアップされています。これは通常、WAR ファイルでデプロイ可能なものではなく、アプリケーション サーバーの設定によって行われます。
  • JNI がネイティブ クラスをライブラリにリンクする方法により、その Web アプリケーションの複数のインスタンスを実行しようとすると、クラス ローダーで問題が発生します。これを回避する 1 つの方法は、含まれている JAR ファイルを共有クラス ローダー (Tomcat の共​​通フォルダーなど) に移動することですが、これには独自の複雑さが伴います。

他のヒント

とにかく、これらの第三者の性欲を包装するためにありますか

Eclipseでは、Javaプロジェクトのプロパティ(右クリック)の下で、私は次のことができます。

 Export... => Export as Runnable JAR

次に、そのエクスポートされた瓶に瓶の依存関係を詰め込むように言います。エクスポートされた瓶には、そのすべての依存関係が詰め込まれます。

Alt Text http://www.ubuntu-pics.de/bild/97131/selection_016_mg6idm.png

私はこのトピックの専門家ではありませんが、そこに それは これらすべての問題に対する実用的な解決策。彼らはあなたに頭痛を与えるかもしれませんが、いくつかのことはこの方法でのみ行うことができます(そして、私はあなたの委託CSPの問題がその1つであると確信しています)。

あなたは見ることができます opensign から Openoces-Project. 。魔法はorg.openoces.opensign.client.applet.bootstrapで発生します。

私もそれを信じています jnlpappletlauncher 同じ問題を解決しますが、私は経験がありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top