SpringBoot调用dll文件,idea运行没问题,打jar包以后报错

SpringBoot调用dll文件,idea运行没问题,打jar包以后报错
报错信息:

    org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'downTaskController': Unsatisfied dependency expressed through field 'hikConfigService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'hikConfigService': Unsatisfied dependency expressed through field 'hikvisionManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'getHikvisionConfigure' defined in class path resource [cn/net/dmx/hikvisiondownload/config/HikvisionConfigure.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [cn.net.dmx.hikvisiondownload.config.HikvisionManager]: Factory method 'getHikvisionConfigure' threw exception; nested exception is java.lang.UnsatisfiedLinkError: Unable to load library 'F:\dmx\HikvisionDownload\target\hikdownload.jar!\BOOT-INF\classes!\hikLib\HCNetSDK.dll': ???????¨

加载dll异常,你看看你dll打包到jar里面没?还有这怎么是乱码,尽量不要用中文名称。

这几个????不知道是哪儿来的 没有中文命名啊 dll文件jar里已经打包进去了 我解压出来以后跟日志上的路径也一样 只是路径上有那俩感叹号 实际路径没有

我在stackoverflow上搜了一下这个问题,你可以参考参考

好的大哥 我去看看

可以尝试吧dll 放到外部

放外部我知道可以 但是放外部没有放里面得劲呀

不行。。

请问 大哥这个问题解决了么? 我现在也遇到类似的问题了,就算把dll放在外面同样无法加载dll

springboot打包后,就是一个独立的文件了。可以尝试用ClassPathResource读取classpath下的lib文件,copy到本地磁盘。然后再从文件系统去加载。

哦哦哦,解决了,我直接放到jar包同路径下了,然后./读取就行

1 个赞