簡體   English   中英

從命令行在Ubuntu上運行Java OpenCV

[英]Running Java OpenCV on Ubuntu from command line

我正在嘗試使用OpenCV庫編譯和運行一個簡單的Java代碼示例,在Ubuntu 14.04 64位上,可以在OpenCV的文檔中找到: Java OpenCV文檔

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.CvType;
import org.opencv.core.Scalar;

class SimpleSample
{
    static
    {
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
    }

    public static void main(String[] args)
    {
        System.out.println("Welcome to OpenCV " + Core.VERSION);
        Mat m = new Mat(5, 10, CvType.CV_8UC1, new Scalar(0));
        System.out.println("OpenCV Mat: " + m);
        Mat mr1 = m.row(1);
        mr1.setTo(new Scalar(1));
        Mat mc5 = m.col(5);
        mc5.setTo(new Scalar(5));
        System.out.println("OpenCV Mat data:\n" + m.dump());
    }
}

由於它只是一個簡單的測試,我真的不想使用任何復雜的建築系統。 所以我用以下命令編譯:

javac -cp "/usr/share/OpenCV/java/opencv-248.jar" SimpleSample.java

但是我無法運行該應用程序,因為當我調用時:java SimpleSample

我面臨以下例外:

Exception in thread "main" java.lang.NoClassDefFoundError: org/opencv/core/Core

at SimpleSample.<clinit>(SimpleSample.java:10)

Caused by: java.lang.ClassNotFoundException: org.opencv.core.Core
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more

有人可以幫我運行這個應用程序嗎?

opencv-248.jar不在CLASSPATH上。 您可以按如下方式運行它:

java -cp /usr/share/OpenCV/java/opencv-248.jar:. SimpleSample

從源代碼編譯並將libopencv_java248.so復制到$ JAVA_HOME / jre / lib / amb64 /目錄中。 此平台特定文件未包含在jar文件中。 在沒有安裝此文件的情況下運行示例程序會出現“java.lang.UnsatisfiedLinkError:java.library.path中沒有opencv_java248”錯誤。 另請注意,需要為編譯期間生成的此特定於平台的文件安裝Apache Ant。

我設法解決了這個問題。 在Ubuntu 14.04 64bit中,您可以使用以下命令從命令行運行代碼:

LD_LIBRARY_PATH=/usr/lib/jni/ java -cp /usr/share/OpenCV/java/opencv-248.jar:. SimpleSample

可以使用-D定義OpenCV本機二進制庫路徑(在我的示例中為libopencv_java343.dylib ):

java -cp /opt/local/share/OpenCV/java/opencv-343.jar:. -Djava.library.path=/opt/local/share/OpenCV/java/ SimpleCV

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM