8

NetBeans で JNI を利用するライブラリを定義できますか?

ライブラリ定義では、Jar または Folder のみが許可されているようです。

アプリのビルド時に DLL が jar ファイルに従うようにするにはどうすればよいですか?

4

3 に答える 3

6

NetBeans プラットフォーム アプリケーション (またはモジュール) の構築について言及していると仮定すると、DLL を「release/modules/lib/」フォルダに配置できます。これは、プラットフォームの FAQ によるものです。

追加情報はこちら:

より一般的に質問している場合は、ほとんどの人が DLL を jar 内にパッケージ化し、アプリケーションの起動時に一時的な場所に展開していると思います。例えば

それがあなたが探しているものではない場合は、何をしようとしているのかについてより多くの情報を提供する必要があります.

于 2010-01-06T02:19:33.033 に答える
1

NetBeans 7.0.1 を使用して次のソリューションをテストしたところ、機能しましたが、初期バージョンでも機能するかどうかはわかりません。

このソリューションは簡単で、NetBeans モジュールごとに機能します。したがって、スイートがある場合は、その JNI ファイルをスイート プロジェクトに配置しないでください。代わりに、必要な JNI ファイルをモジュール自体に配置します。行う:

  1. JNI ライブラリ (拡張子 .DLL、.so、および .jnilib など) を配置する必要がある (または必要である、または考える) NetBeans モジュール プロジェクトを見つけます。
  2. プロジェクトで、モジュール ノードを右クリックし、[プロパティ] メニューをクリックします。
  3. [プロジェクト プロパティ] ダイアログで、[ライブラリとラップされた JAR] をクリックします。そこに外部ライブラリを追加する必要があります。RxTX jar ライブラリを追加しました。外部ライブラリを追加した後、Netbeans Ant スクリプトは、ソリューションをビルドするときに、ディレクトリ your_project_dir/release からすべてのファイル/フォルダーを適切な場所にコピーします。
  4. したがって、ネイティブ ライブラリをyour_project_dir/release/libに配置します。必要に応じて、必要なターゲット プラットフォームごとに次のようなサブディレクトリを作成できます

    詳細については、http: //bits.netbeans.org/dev/javadoc/org-openide-modules/org/openide/modules/doc-files/api.html#jniを参照してください。

    よろしく、 marciowb.info

于 2011-08-18T19:36:45.793 に答える
1

netbeans は単独では実行しませんが、裏で ant を使用しているため、回避策があります。

jniプロジェクト ディレクトリ ( ) に名前の付いたサブディレクトリを作成しc:\path\to\mynetbeansproject\jni、そこにすべての .dll、.so、および .jnilib ファイル (ネイティブ ファイル) を配置build.xmlし、プロジェクト ディレクトリにあるファイルの直前に次の行を追加する必要があります。タグ</project>:

<target name="-post-compile">
    <copy todir="${dist.dir}/lib">
        <fileset dir="jni" />
    </copy>
</target>

次に、いつものように jar ファイルをプロジェクトに追加します。:)

挿入したスニペットにより、netbeans 内 (またはコマンド ライン) から"Clean and Build" を呼び出したときにbuild.xml、ネイティブ ライブラリがフォルダー内の jar ファイルに従うようになります。jvm は、ロードしている .jar と同じディレクトリで .dll (.so、.jnilib) ファイルを探すので、動作します。dist/libant

これにより、プロジェクトが netbeans 内から実行されるわけではないことに注意してください。なぜなら… 何が起こっているのかよくわかりませんが、ライブラリ パス ( LD_LIBRARY_PATH) にプロジェクトのライブラリが含まれていないようです。 netbeans 内から変更する方法。ネイティブ ライブラリを mac os x に配置するか、 windows/Library/Java/Extensionsの下に隠しておきます。c:\windows\system3264ビットのjv​​mで64ビットのWindowsを実行している場合、私には手がかりがありません。Linux を実行している場合は、おそらくそれらをどこに隠しておくべきか知っているでしょうが、それ/usr/lib/javaは良い賭けかもしれません。

于 2010-01-11T13:39:56.067 に答える