2011-01-09 9 views
3

java.lang.ClassLoader $ NativeLibrary.load()からjava.lang.UnsatisfiedLinkErrorが取得されました。「アクセスが拒否されました」というメッセージが表示されます。 DLLは、UNCパス経由でネットワーク共有からロードされています。以前は他のネットワーク共有にエラーがなくても動作していました(私はシステム管理者からこの特定の共有がもっと "ネイティブなWindows"であると言われていました)ので、私の最初の本能はcaclsを使ってDLLファイルのフルコントロールをEveryoneとJavaコードを実行している特定のユーザー。 WindowsエクスプローラでDLLのプロパティを表示すると、明らかにこれらのアクセス許可が設定されていますが、まだこのエラーで失敗しています。何か案は?UnsatisfiedLinkErrorフルコントロールの場合でも「アクセスが拒否されました」

答えて

3

このdllは、十分な権限を与えられていない他のdllをロードしようとします。

+0

Hmm ...その時点でロードがネイティブコードから発生しているため、エラーメッセージに反映されませんでしたか? – UltraNurd

+0

うん、ディレクトリにもlibdb47.dllがあった。 caclsでそれに助成金を払っているのは、このトリックを済ませたようだ。 – UltraNurd

+1

この問題を抱えている人のための別の可能性は、いくつかのjarファイルを使用してDLLファイルを抽出し、適切な権限を持つフォルダに解凍する必要があることです。この場合のように:https://github.com/xerial/sqlite-jdbc/issues/97 – Kelly

0

システム管理者として実行してください。それは確実に機能します。私は同じ問題を抱えていて、Eclipseを管理者として実行していました。

関連する問題