如何在调用JNA Native.loadLibrary之前检查DLL / SO以避免UnsatisfiedLinkError

时间:2013-09-04 13:28:34

标签: java ffmpeg jna

我正在使用JNA加载本机库(ffmpeg),但我需要在实际调用Native.loadLibrary()之前检查DLL / SO文件是否存在。 FFMPEG可能并不总是安装在系统中(单独下载)。

Native.loadLibrary()会抛出一个错误,你无法通过try {} catch {}陷阱。

在实际调用loadLibrary()之前,如何检查库(DLL或SO)是否存在? 我是否必须解析PATH环境变量并检查自己?我将不得不检查Windows和Linux,并确保安装正确的32/64位.dll或.so ???

我希望loadLibrary只返回一个空指针或引发异常,而不是错误(设计错误)。

1 个答案:

答案 0 :(得分:0)

没关系,我找到了简单的解决方案。

你可以抓住错误。我以为你不能。 我总是使用try {} catch(Exception e){}来捕获所有异常,但这不会捕获错误。 我需要使用try {} catch(错误e){}或catch(UnsatisfiedLinkError ule){}。

每天学习新知识。