This question already has answers here:
UnsatisfiedLinkError: no opencv_java249 in java.library.path

(9个答案)


4年前关闭。




提前致谢..

我有一个使用 opencv-300.jar 作为外部库的项目。我已经在eclipse和 natBeans中进行了尝试。 当我从IDE本身运行项目时,两者都可以成功运行。
我希望我的项目将其导出为可运行(或可执行)的jar。
我将 opencv_java300.dll 文件放置在带有主Java文件的源文件夹中,并在其中指定了名称
 System.loadLibrary("opencv_java300");

我将opencv-300.jar放在外部jar库和Main程序中需要的所有其他文件中。从IDE运行时,它运行成功,但是当我创建可执行jar时,显示错误
   Exception in thread "main" java.lang.UnsatisfiedLinkError: no
   opencv_java300 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 CropFaceImage.main(CropFaceImage.java:27)

请告诉我是否有任何方法可以在程序本身中提供 java.library.path 。即使我在外部库中删除了 opencv_java300.dll 文件的路径,我的项目仍能正常工作。

最佳答案

我试图传递包含 opencv 路径的命令,但没有找到其他方法。我以某种方式尝试了一些创建我的jar的程序,它可以正常运行。我复制了opencv_java300.dll文件,并将其放在我的jar文件旁边的目录中,并对所有支持文件执行相同的操作。
我用下面的代码来做到这一点。

String opencvpath = System.getProperty("user.dir") + "\\files\\";
String libPath = System.getProperty("java.library.path");
System.load(opencvpath + Core.NATIVE_LIBRARY_NAME + ".dll");

09-10 07:43
查看更多