JavaFx+openCv项目在win7系统部署异常(no opencv_java310 in java.library.path)

来源:互联网 发布:linux查看进程端口 编辑:程序博客网 时间:2024/06/03 07:20

【学习参考】
JavaFx+openCv项目代码参考官网教程点击跳转
JavaFx项目部署参考点击跳转
【问题解决】
以上是学习的参考,实际操作部署后,运行exe文件会出现两个错误弹窗:
Error invoking method!
Failed to launch jvm!
.exe程序无法执行。

根据网上的找的半自动解决方法【直接执行jar包看异常】,出现以下异常内容。

java.lang.reflect.InvocationTargetException    <省略部分异常>Caused by: java.lang.UnsatisfiedLinkError: no opencv_java310 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)        at application.Main.main(Unknown Source)        ... 11 moreException running application application.Main

然后根据java.lang.UnsatisfiedLinkError: no opencv_java310 in java.library.path继续查找问题,看了多个解决方法后,明白问题的来源是程序中System.loadLibrary(Core.NATIVE_LIBRARY_NAME);加载不到opencv_java310.dll,而我用eclipse调试时因为按照教程对该参数进行设置过了,所以没有报错,但是部署的文件并不能获取到该参数,因此异常。所以对该加载opencv_java310.dll程序进行修改即可。修改如下:(两种方法,选其一即可)
相对路径方法

第一步:System.loadLibrary(Core.NATIVE_LIBRARY_NAME);修改为:String relativelyPath=System.getProperty("user.dir"); System.load(relativelyPath+"\\opencv_java310.dll");第二步:部署安装,但还是会报错第三步:找到部署的文件安装位置,默认C:\Users\[用户名]\AppData\Local\[项目名],然后打开其下的app文件夹,将opencv_java310.dll拷贝到这里。执行上层文件夹中的exe文件即可正常运行,无报错。

绝对路径方法:

System.loadLibrary(Core.NATIVE_LIBRARY_NAME);修改为:System.load("E:\\opencv\\build\\java\\x64\\opencv_java310.dll");以上路径根据你的opencv_java310.dll实际位置修改。重新打包部署,然后执行无报错。

这里写图片描述