ImageJプラグインとそのソースには、動作させるために.dllライブラリが必要です。プラグインはImageJプラグインフォルダに入れても問題なく動作します。NetBeansからImageJプラグインを起動すると、JNIエラーが発生します。 ImageJのみから起動すると、うまく動作します
しかし、NetBeans(既にNetBeanプロジェクトだった)でプロジェクトを開き、ImageJを起動してプラグインを設定する簡単なテストクラスでIDEから起動しようとしたので、新しい機能を追加するためにソースを修正する必要がありますプロジェクトディレクトリ\ dirにdirします。これは私の他のすべてのプラグインで動作しますが、ここでUnsatisfiedLinkErrorを取得します。
Dependency Walkerのいくつかの調査と使用の後、私はプロジェクトパスにいくつかの.dllがありませんでした。今私はそれらをすべて正しい場所に置いて、-Djava.library.path = "paths_to_all_my_libs"で実行しても、私はまだエラーが発生します。特定のプロシージャが見つかりません。
ImageJのインストールにdistの.jarをコピーしなければならないので、実際には混乱する危険があり、コンソールを使ってデバッグ用のものを出力することはできません。また、ImageJのみでうまくいくとNetBeansでうまく動作しない理由を理解できません。
どのようなアイデアも大歓迎です!あなたがここに二つのアプローチで行くことができ
これは実際に私の問題です。私はパス(私のプロジェクトのために-Djava.library.pathオプションで設定されています)にすべてのdllを持っていますが、プロシージャがあります。これは私がネイティブコードのメソッドであると仮定します。 System.loadまたはSystem.loadLibraryを使用します。 ImageJが使用しているのと全く同じパスを使用しようとしましたが、NetBeansから実行するとうまくいきません。 – PikCeLL
しかし、PATH環境変数も設定していますか? System.loadを使用してライブラリをロードしようとすると、エラーは何ですか?おそらく、欠けている他のDLLがありますか? – mko
私はPATH変数をチェックしました。私の.dllがあるディレクトリは含まれていません。私はPATHのどこかに.dllを変更したりコピーしたりする権利がありません。 System.loadを使用するとエラーが発生します。 'スレッド内の例外" main "java.lang.UnsatisfiedLinkError:C:\ path_to_my_dll \ Pylon64JNI-visual.dll:指定されたプロシージャを見つけることができませんでした \t at java.lang.ClassLoader $ NativeLibrary.load(ネイティブメソッド) ' パスにあったライブラリのSystem.loadLibraryと他のライブラリのSystem.loadを使用して、Pylon64JNI-visual依存ライブラリ(DWで見つかったもの)が事前にロードされていることを確認しました。 – PikCeLL