1

リンクをクリックして Web ブラウザーからダウンロードできるアプリ (Sigar) を開発しています。アプリケーションはマシン情報を監視しますが、そのためにはいくつかのライブラリ ファイル (libsigar-x86-linux.so、libsigar-x86-freebsd-5.so など) が必要です。

私の計画では、最初にネイティブ ファイルを JAR に入れ、次にアプリケーションが JWS でダウンロードされたときに、

  • ネイティブ ライブラリを含む JAR ファイルをフォルダーに解凍します。
  • アプリの実行時に決定された現在のクラスパスを見つけます。
  • 最後に、java.library.path をクラスパスに相対的に設定して、ネイティブ ライブラリを見つけられるようにします。

現在、次のコードを使用して JAR のパスを特定しようとしています。

String path = MyClass.class.getProtectionDomain()
   .getCodeSource().getLocation().getPath();

しかし、返されたパスは Web サービス パスであり、ローカル環境のものではないため、何か間違ったことをしているに違いありません。

現在の計画の間違いを誰か指摘してもらえますか? ありがとう。

4

2 に答える 2

2

nativelibJNLP ファイルのタグは、必要なネイティブ ライブラリを処理するように設計されています。

JNLP File Syntaxの resources タグのドキュメントを参照してください 。

于 2013-03-12T07:08:29.893 に答える
0

前述のように、ネイティブのライブラリjnlpはおそらくあなたが求めているものです。

しかし、他の理由でアンペーシングを手動で制御したい場合は、 a を ajar内に埋め込むことで実現できますjar。参照: JWS でダウンロードした jar ファイルから一部のコンテンツを抽出する

于 2013-03-12T07:21:04.973 に答える