Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';在java中加载本机库(OpenCV)_Java_Opencv - Fatal编程技术网

Can';在java中加载本机库(OpenCV)

Can';在java中加载本机库(OpenCV),java,opencv,Java,Opencv,我在java+opencv(eclipse)中的应用程序有问题 它在eclipse中工作得很好。当我从我的项目中制作jar时,它在我的笔记本电脑上工作,但在运行jar的不同PC上(没有IDE的PC),我无法加载opencv。 当前加载openCV的方法: static { try { int bitness = Integer.parseInt(System.getProperty("sun.arch.data.model")); if(bitness =

我在java+opencv(eclipse)中的应用程序有问题

它在eclipse中工作得很好。当我从我的项目中制作jar时,它在我的笔记本电脑上工作,但在运行jar的不同PC上(没有IDE的PC),我无法加载opencv。 当前加载openCV的方法:

static {
    try {
        int bitness = Integer.parseInt(System.getProperty("sun.arch.data.model"));
        if(bitness == 32){
            System.out.println("32 bit detected");
            System.load("C:/OpenCV/opencv/build/java/x86/opencv_java248.dll");
        }
        else if (bitness == 64){
            System.out.println("64 bit detected");
            System.load("C:/OpenCV/opencv/build/java/x64/opencv_java248.dll");
        }
    } catch (UnsatisfiedLinkError e) {
      System.err.println("Native code library failed to load.\n" + e);
      System.exit(1);
    }
  }
我收到关于UnsatifiedLinkError的错误消息。当我试图在catch部分打印e.getMessege()时,我得到了一条空消息

当我使用 System.loadLibrary(“opencv_java248”)或 System.loadLibrary(Core.NATIVE_LIBRARY_NAME)带和不带-Djava.LIBRARY.path=(pathToLibrary)具有良好的opencv_java248;版本,我的意思是我在路径或库版本中没有任何打字错误,我有错误消息:

UnsatisfiedLinkError:
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
...
--编辑

dependency walker仅显示缺少的msjava.dll。但这不应该是个问题。。 我更改了opencv文件夹,现在我有了C:/opencv/build/java/


仍然没有什么

只是一些想法:您可能希望安装在/opencv而不是/opencv/opencv。我认为它对安装位置做出了假设,但不确定如何推翻这些假设。您的系统路径中是否有这些或适当的备选方案?C:\opencv\build\java\x86;C:\opencv\build\x86\vc10\bin。我很快就会将我的应用程序部署到不同的地方,我很想知道你是否找到了解决方案。另一个想法是——当DLL无法找到它的一些依赖项时,我收到了不满意的链接错误。在不同的PC上运行类似于opencv_java248.dll上的Dependency Walker的程序可能会对这个问题有所帮助。在我开发应用程序的PC上安装了opencv/opencv,所以我也在不同的PC上使用它。还获得了系统路径上带有opencv dll的文件夹;明天我将写一篇关于依赖沃克的文章。