NetBeans で JNI を利用するライブラリを定義できますか?
ライブラリ定義では、Jar または Folder のみが許可されているようです。
アプリのビルド時に DLL が jar ファイルに従うようにするにはどうすればよいですか?
ライブラリ定義では、Jar または Folder のみが許可されているようです。
アプリのビルド時に DLL が jar ファイルに従うようにするにはどうすればよいですか?
NetBeans プラットフォーム アプリケーション (またはモジュール) の構築について言及していると仮定すると、DLL を「release/modules/lib/」フォルダに配置できます。これは、プラットフォームの FAQ によるものです。
追加情報はこちら:
より一般的に質問している場合は、ほとんどの人が DLL を jar 内にパッケージ化し、アプリケーションの起動時に一時的な場所に展開していると思います。例えば
それがあなたが探しているものではない場合は、何をしようとしているのかについてより多くの情報を提供する必要があります.
NetBeans 7.0.1 を使用して次のソリューションをテストしたところ、機能しましたが、初期バージョンでも機能するかどうかはわかりません。
このソリューションは簡単で、NetBeans モジュールごとに機能します。したがって、スイートがある場合は、その JNI ファイルをスイート プロジェクトに配置しないでください。代わりに、必要な JNI ファイルをモジュール自体に配置します。行う:
したがって、ネイティブ ライブラリをyour_project_dir/release/libに配置します。必要に応じて、必要なターゲット プラットフォームごとに次のようなサブディレクトリを作成できます。
詳細については、http: //bits.netbeans.org/dev/javadoc/org-openide-modules/org/openide/modules/doc-files/api.html#jniを参照してください。
よろしく、 marciowb.info
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/lib
ant
これにより、プロジェクトが netbeans 内から実行されるわけではないことに注意してください。なぜなら… 何が起こっているのかよくわかりませんが、ライブラリ パス ( LD_LIBRARY_PATH
) にプロジェクトのライブラリが含まれていないようです。 netbeans 内から変更する方法。ネイティブ ライブラリを mac os x に配置するか、 windows/Library/Java/Extensions
の下に隠しておきます。c:\windows\system32
64ビットのjvmで64ビットのWindowsを実行している場合、私には手がかりがありません。Linux を実行している場合は、おそらくそれらをどこに隠しておくべきか知っているでしょうが、それ/usr/lib/java
は良い賭けかもしれません。