java如何在导出到jar时包含opencv本机库
我正在准备jar,它会比较图像并相应地返回结果。 我正在使用OpenCV进行比较。当我导出jar并提供给我的同事在安卓应用程序中使用它时,他在下面的一行中遇到了错误
System.loadLibrary(CORE.NATIVE_LIBRARY_NAME);
检查时,我发现该库正在从我的系统上的本地路径被使用。我如何在罐子中传递下面的库,以便每一次都可以使用它
而且,我也不确定,即使在那时,作为一个系统,它是否会起作用。loadLibrary尝试使用系统中的JAVA路径。 有没有其他方法可以从类路径加载这个库
欢迎提出建议
# 1 楼答案
本机库依赖于JVM之外的库,不能以可移植的方式添加到Java应用程序中。这就是说:您仍然可以通过简单地打开jar文件(它是一个zip文件)将文件添加到jar中,并通过路径(例如:
/yourlibs/bla.lib
)引用文件然后,从jar加载将是:
您可能会错过很多依赖项,通过阅读文档、扫描代码和测试代码,您可能会手动获得所有这些依赖项,然后它可能仍然局限于某些操作系统安装