OpenCV Java Hatası java.lang.UnsatisfiedLinkError
kanexsa opened this issue · comments
Başlık: Hata
Açıklama:
Hocam merhabalar ben bitirme tezimi deep learning ile yüzi fadelerinin tanımlanması olarak aldım çok araştırmalarımdan sonra sizin kaynağı buldum umarım doğrudur :) Sorunum şu eclipse ile çalışıyorum ilk kodumda şu hatayı aldım acaba çözümü nedir
Exception in thread "main" java.lang.UnsatisfiedLinkError: no opencv_java400 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 Giris.main(Giris.java:9)
Varsa Çözümünüz:
Merhaba, bu hatanın sebebi native opencv kütüphanesinin jvm tarafından bulunamıyor olması. Farklı iki çözüm yolu var.
Not 1: referans verdiğin opencv.jar ile jvm e gösterdiğin native kütüphane dizinindeki opencv versiyonu aynı olmalı.
Not 2: Java native kütüphaneler için opencv içerisindeki lib dizininde yer alan opencv_java400.so veya opencv_java400.dll dosyaları ile ilgilenir, bu yüzden referans verdiğin dizinde bu dosyaların olması gerekir, manuel derlediysen bu dosyalar oluşmamış olabilirler, bu durumda da hata alabilirsiniz.
1:
Aşağıdaki bağlantıda OpenCV nin eclipse üzerine nasıl kurulduğu var bu yöntemde eclipse üzerinden JVM e parametre olarak opencv_java400.dll veya opencv_java400.so dosyasının dizini gösteriliyor ve main sınıfında System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
ile opencv.jar içerisinde ilgili versiyon için belirlenen OpenCV native lib adı veriliyor.
IDE'ler için yapılandırma: https://github.com/mesutpiskin/goruntu-isleme-klavuzu/blob/master/docs/5-ide-yapilandirmasi.md
Kurulum & Derleme: https://github.com/mesutpiskin/goruntu-isleme-klavuzu/blob/master/docs/4-opencv-kurulumlar.md
2:
- Eclipse ile JVM parametresi olarak OpenCV native lib dizinini set et.
örn: -Djava.library.path=/opencvdizini/opencv-4.0.0/build/lib - Daha sonra main class içerisinde native kütüphaneyi yükle.
örn:
mac ve linux için
System.loadLibrary("/opencvdizini/opencv-4.0.0/build/lib");
windows için
System.loadLibrary("/opencvdizini/opencv_java400");