1. 程式人生 > >Exception in thread "main" java.lang.UnsatisfiedLinkError: org.opencv.imgcodecs.Imgcodecs.imread_0異常

Exception in thread "main" java.lang.UnsatisfiedLinkError: org.opencv.imgcodecs.Imgcodecs.imread_0異常

本來想放棄使用 BufferedImage 改用 OpenCV 處理影象,但我試了 Maven 直接加入依賴後發現頻頻報錯,網上搜的資料教程又太少,折騰了好久,還是記錄下來方便大家吧!

此教程針對 Mac OS 環境

OpenCV for Java 執行時丟擲異常:

Exception in thread "main" java.lang.UnsatisfiedLinkError: org.opencv.imgcodecs.Imgcodecs.imread_0

是由於沒有載入動態連結庫導致的 libopencv_javaxxx.dylib,xxx指的是版本號

 public static void main(String []args){
        //加上這句
        // 載入 動態連結庫
        System.loadLibrary( Core.NATIVE_LIBRARY_NAME );

        // OpenCV Code ...
        Mat src = Imgcodecs.imread("xx.jpg", Imgcodecs.CV_LOAD_IMAGE_GRAYSCALE);
}

點選執行,還會報另外一個錯誤:

java.lang.UnsatisfiedLinkError: no opencv_javaxxx in java.library.path

原因有兩個:

1. 缺少動態連結庫,你可能是使用 Maven 或是 Jar 包的方式直接引入 OpenCV 的,這並不會包含連結庫,因為 Windows 和 Mac 分別使用的是 dll 、 dylib 兩種不同的方式,需要自行處理。

*************所以請依次執行下面命令安裝,若之前安裝過,先執行第一句解除安裝******************

$ brew uninstall opencv3

$ brew install ant

$ xcode-select --install

$ brew edit opencv       (這一句將檔案中的 -DBUILD_opencv_java=OFF 改為 -DBUILD_opencv_java=ON)

$ brew install --build-from-source opencv

OK , OpenCV for Java 安裝完成!

2. 包含動態連結庫,但在 IDE 配置中未設定,這裡是 IntelliJ IDE 設定:

VM Option 里加入上面那句話即可:

-Djava.library.path=/usr/local/Cellar/opencv/3.4.3/share/OpenCV/java/

這裡的版本號是3.4.3,注意這裡就好。

相關推薦

Exception in thread "main" java.lang.UnsatisfiedLinkError: org.opencv.imgcodecs.Imgcodecs.imread_0異常

本來想放棄使用 BufferedImage 改用 OpenCV 處理影象,但我試了 Maven 直接加入依賴後發現頻頻報錯,網上搜的資料教程又太少,折騰了好久,還是記錄下來方便大家吧! 此教程針對 Mac OS 環境 OpenCV for Java 執行時丟擲異常:

elasticsearch 編寫java程式報錯Exception in thread "main" java.lang.NoClassDefFoundError: org/elasticsearch

java程式啟動報錯: Exception in thread "main" java.lang.NoClassDefFoundError: org/elasticsearch/plugins/NetworkPlugin ERROR StatusLogger Log4j2

spark submit提交任務報錯Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/stream

1.問題描述 提交spark任務: bin/spark-submit --master local[2] \ --class _0924MoocProject.ImoocStatStreamingApp_product \ /opt/datas/project/scala

hadoop解決Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/yarn/util/Apps

linux+eclipse+本地執行WordCount丟擲下面異常: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/yarn/util/Apps。 解決:沒有把yar

"Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/helpers/NOPLoggerFactory"錯誤解決方法

主要原因是hibernate-distribution-3.3.2.GA中的帶有的slf4j-api-1.5.8和最新下載的slf4j-1.6.1不相容造成的,下載一個slf4j-1.5.8包就解決問題了。

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBean

當時問題就出在這上面 這個問題主要是jar包導致的我當時是  commons-beanutils-1.7.0.jar 這個jar包沒有匯入, 但是我在網上了解到缺少json其他jar包也會導致這些問題 如果有需要的在我的資源裡有json 整套的jar包,你可

Hadoop除錯:Exception in thread "main"java.lang.UnsatisfiedLinkError

異常完整描述 Exception in thread "main" java.lang.UnsatisfiedLinkError:org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/la

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/collections/ExtendedPr

在使用封裝好的外掛自動生成controller Service mapper pojo的時候遇到如上的問題, Exception in thread "main" java.lang.NoClassD

idea運行的時候出現的問題Exception in threadmainjava.lang

ideaidea運行的時候出現的問題Exception in thread “main” java.lang.NoSuchMethodError: scala.collection.immutable.HashSet$這類錯誤主要是環境中運行scala與idea中scala的版本不一致導致的。將他們更換為相同

Exception in threadmainjava.lang.NoSuchMethodError: scala.Predef..conforms()Lscala/Predef$$less$

執行Scala程式,出現如下問題: Exception in thread “main” java.lang.NoSuchMethodError: scala.Predef..conforms()Lscala/Predef$$less$colon$less; at org.apach

java使用類陣列 報錯Exception in thread "main" java.lang.NullPointerException

原始碼如下: Point[] points=new Point[n];//Point是一個類 for(int i=0;i<n;i++) { System.out.print("請輸入x:"); points[i].setX(in.next

連線資料庫連線池 Exception in thread "main" java.lang.NullPointerException

今天測試資料庫連線池發現一直是空指標錯誤。一般都是配置檔案出了問題。找了半天才發現,在沒有密碼的情況下不要加入password=null,估計是沒有加入關鍵字解析的。直接省去不寫就好了 driverClassName=com.mysql.jdbc.Driver

【解決】自己編寫Wordcount程式碼上傳叢集上執行時報錯:Exception in thread "main" java.lang.ClassNotFoundException: WordCount

報錯資訊:ClassNotFoundException: WordCount [[email protected] fs_testdir]# hadoop jar /fs_testdir/my

personRDD.toDF Exception in thread "main" java.lang.NoSuchMethodError

scala 版本: 2.10.2 sparkSQL :maven依賴版本  <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark

Exception in thread "main" java.lang.ClassNotFoundException: WordCount

出現這個問題主要是呼叫的問題,沒有加入包./bin/hadoop jar FirstJar/WordCount.jar WordCount input output改成如下的樣子就可以了./bin/hadoop jar FirstJar/WordCount.jar cn.edu.ruc.cloud

hive錯誤:Exception in thread "main" java.lang.RuntimeException: java.io.IOException: Permission denied

用不同使用者去登入hive  可能會報如下錯誤: Exception in thread "main" java.lang.RuntimeException: java.io.IOException: Permission denied         at org.apa

Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.jdbc.driver at java.base/jdk

Eclipse下javal連資料庫一直報這個錯。由於我用的是新版的MySQL,所以經常遇見些奇奇怪怪的錯…… 坑在這裡:  錯誤程式碼:Class.forName("com.mysql.jdbc.driver"); Driver要大寫!!! 正確的程式碼: pack

hibernate出現Exception in thread "main " java.lang.ExceptionInInitializerError錯誤解決辦法

最近複習了下hibernate的內容,用於準備面試。另外看了下尚學堂的視訊,按照步驟去做了幾個實驗, 但是在這過程中遇到了以下錯誤問題: SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found bi

Exception in thread "main" java.lang.NoClassDefFoundError: javax/servlet/ServletContext

        最近習慣做筆記,如果那裡有不對的地方,還望大神們指點,親噴也可以。         用了兩天碼了個dubbo服務,本地執行可以,結果放到伺服器傻逼了(心裡一萬隻草泥馬在奔騰。。。),為什麼? 結果在執行消費端zookeeper的時候,出現:Exception

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space ”

背景: 我在Eclipse+tomcat下使用http協議的post方法向伺服器上傳大檔案的時候出錯。 Error: Exception in thread "main" java.lang.Out