■ UnsatisfiedLinkErrorが発生する
* 以下の「発生環境」において、UnsatisfiedLinkErrorが発生 * 発生箇所は、「System.loadLibrary(Core.NATIVE_LIBRARY_NAME);」実行時である
発生環境
* Java1.8 * Eclipse nano * OpenCV v2.4.14
エラー内容
Exception in thread "main" java.lang.UnsatisfiedLinkError: no opencv_java2414 in java.library.path at java.lang.ClassLoader.loadLibrary(Unknown Source) at java.lang.Runtime.loadLibrary0(Unknown Source) at java.lang.System.loadLibrary(Unknown Source) at com.sample.Main.main(Main.java:20)
解決案
(1) 以前、使用していた別バージョンのOpenCVを使用していた場合 * EclipseのJarが古いままでインポートしていたので、 インポートしているJarを新しいJarに置き換えた * 古いバージョンはできれば削除する
【補足】
Core.NATIVE_LIBRARY_NAMEの内容は、"opencv_java2413"となっている これは、dllファイル名となっている。 しかし、ファイル名にはバージョン名(opencv_...2413の"2413"部分)が含まれているので 使用するdllとjarのバージョンは合わせなくてはならない。
(2) (1)でもダメな場合
[1] EclipseのPackage Exploreにおいて、対象のプロジェクトを右クリックし、 [Propaties]-[Java Build Path]-[Libraries]で対象のOpenCVのJarを展開し [Native Library Location: (None)]を選択し、「Edit」ボタン押下 [2] 「Location Path:」欄に、OpenCVのdllファイル(例「opencv_java2414.dll」)までのパスを入力し (例「C:\work\opencv\build\java\x64」「C:\work\opencv\build\java\x86」) 「OK」ボタン押下 [3] 「OK」ボタン押下
参考文献
http://stackoverflow.com/questions/12840758/opencv-java-exception
関連記事
OpenCV ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2016/06/27/234046