为了账号安全,请及时绑定邮箱和手机立即绑定

请问怎么从JAR提取并加载DLL

请问怎么从JAR提取并加载DLL

梦里花落0921 2019-11-03 08:04:59
我的Java应用程序使用DLL库。我如何从JAR文件中获取它?DLL位于项目的源文件夹中。我必须将其包含在我的JAR中,在运行时将其提取(在jar的同一目录中)并加载它。
查看完整描述

1 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

尝试加载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是持有静态方法的类



查看完整回答
反对 回复 2019-11-04
  • 1 回答
  • 0 关注
  • 228 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信