带有 java.lang.UnsatisfiedLinkError 的 JavaCV

JavaCV with java.lang.UnsatisfiedLinkError

代码很简单,打开一张图片就可以了。 但是当我 运行 这个我有这样的错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: org.opencv.imgcodecs.Imgcodecs.imread_1(Ljava/lang/String;)J
    at org.opencv.imgcodecs.Imgcodecs.imread_1(Native Method)
    at org.opencv.imgcodecs.Imgcodecs.imread(Imgcodecs.java:112)

根据搜索到的解决方案,我将这个System.load(Core.NATIVE_LIBRARY_NAME)添加到main(),不起作用:

Exception in thread "main" java.lang.UnsatisfiedLinkError: Expecting an absolute path of the library: opencv_java401
    at java.lang.Runtime.load0(Runtime.java:806)
    at java.lang.System.load(System.java:1086)

或者这个System.loadLibrary(Core.NATIVE_LIBRARY_NAME),还是不行:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
    at java.lang.Runtime.loadLibrary0(Runtime.java:870)
    at java.lang.System.loadLibrary(System.java:1122)

我的项目是由gradle构建的,依赖项是(官方文档):

compile group: 'org.bytedeco', name: 'javacv-platform', version: '1.5'

感谢您的帮助。

自己回答。
我的 import 是错误的。应该是
import static org.bytedeco.opencv.global.opencv_imgcodecs.imread
而不是
import static org.opencv.imgcodecs.Imgcodecs.imread
此错误导致使用了错误的包。

正确的代码是:

import org.bytedeco.opencv.opencv_core.Mat;
import static org.bytedeco.opencv.global.opencv_imgcodecs.imread;

public class DemoApplication {
    public static void main(String[] args) {
        Mat image = imread("/root/test.png");
        System.out.println("width:" + image.cols());
        System.out.println("height:" + image.rows());
    }
}