猿问
请问怎么从JAR提取并加载DLL
我的Java应用程序使用DLL库。我如何从JAR文件中获取它?
DLL位于项目的源文件夹中。我必须将其包含在我的JAR中,在运行时将其提取(在jar的同一目录中)并加载它。
梦里花落0921
浏览 229
回答 1
1回答
慕慕森
尝试加载dll之前,需要将其放入库路径(推荐)。因此您将不得不从jar中提取它并将其复制到lib path中。private void loadLib(String path, String name) { name = System.mapLibraryName(name); // extends name with .dll, .so or .dylib InputStream inputStream = null; OutputStream outputStream = null; try { inputStream = getClass().getResourceAsStream("/" + path + name); File fileOut = new File("your lib path"); outputStream = new FileOutputStream(fileOut); IOUtils.copy(inputStream, outputStream); System.load(fileOut.toString());//loading goes here } catch (Exception e) { //handle } finally { if (inputStream != null) { try { inputStream.close(); } catch (IOException e) { //log } } if (outputStream != null) { try { outputStream.close(); } catch (IOException e) { //log } } }}注意: ACWrapper是持有静态方法的类
0
0
0
随时随地看视频
慕课网APP
相关分类
Java
我要回答