1

JNA を使用してネイティブ ライブラリ (ffmpeg) をロードしていますが、実際に Native.loadLibrary() を呼び出す前に DLL/SO ファイルが存在するかどうかを確認する必要があります。FFMPEG はシステムに常にインストールされているとは限りません (別のダウンロードです)。

Native.loadLibrary() は、try {} catch {} でトラップできない ERROR をスローします。

実際に loadLibrary() を呼び出す前に、ライブラリ (DLL または SO) が存在するかどうかを確認するにはどうすればよいですか? PATH 環境変数を解析して自分自身をチェックする必要がありますか? Windows と Linux をチェックして、正しい 32/64 ビットの .dll または .so がインストールされていることを確認する必要がありますか???

loadLibrary がエラーではなく、null ポインターを返すか、例外をスローすることを望みます (設計が悪い)。

4

1 に答える 1

0

気にしないで、シンプルなソルンを見つけました。

エラーをキャッチできます。私はあなたができないと思った。私は常に try {} catch (Exception e) {} を使用してすべての例外をキャッチしましたが、エラーはキャッチされません。代わりに、try {} catch (Error e) {} または catch (UnsatisfiedLinkError ule) {} を使用する必要があります。

毎日何か新しいことを学びましょう。

于 2013-09-04T13:39:55.210 に答える