2

Javaでjnilibをリンクする際に問題が発生しました。受け取り Exception in thread "main" java.lang.UnsatisfiedLinkError: no ***.jnlib in java.library.pathます。私の調査を通じて、これはファイルが何であるかを知らないJavaが原因である可能性があることがわかりました。それで、Macフォルダにあると言いました。また、プロジェクト内の他のすべてのフォルダーにファイルを追加しました。これはまったく役に立ちませんでした。プロジェクトはクロスプラットフォームなので、JavaにWindowsフォルダーを調べるように指示したときに、dllが正常にロードされたWindowsで試してみました。これがMacではなくWindowsで機能する理由がわかりません。どんな考えやアイデアも歓迎します。

例外出力は次のとおりです。

    Exception in thread "main" java.lang.UnsatisfiedLinkError: no libhidapi-jni-64.jnilib in java.library.path
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1758) 
        at java.lang.Runtime.loadLibrary0(Runtime.java:823)
        at java.lang.System.loadLibrary(System.java:1045)
        at webstart.OmronIO.<init>(OmronIO.java:30)
        at webstart.Omron.main(Omron.java:13) 

java.library.pathは、/ Volumes / UNTITLED / javahidapi/macです。

jinlibへのパスは次のとおりです:/ Volumes / UNTITLED / javahidapi/mac。

4

1 に答える 1

0

OSX では、環境変数 DYLD_LIBRARY_PATH を使用して共有ライブラリ (.jnilib を含む) を検索します。その変数は、java.library.path の初期化に使用されるものです。

System.loadLibrary() を試行した時点で java.library.path の値を出力すると、ロードしようとしているライブラリを検索したディレクトリのリストが表示されます。

編集

ロードしようとしている特定のライブラリ ( hidapi )、およびそれをロードしようとしている方法 (webstart)。

于 2012-07-10T19:21:36.850 に答える