【问题标题】:Setting library path for dll which is in jar file为jar文件中的dll设置库路径
【发布时间】:2011-12-09 07:40:53
【问题描述】:

在我的 netbeans 桌面应用程序中,我在项目中保存了 Rxtx 的 .dll 文件。我可以为那些 .dll 文件设置库路径吗?

这是项目层次结构

项目名称

  • 包装1

     rxtx
              rxtxSerial.dll
              rxtxParall.dll
    
  • package2

  • 元信息

提前致谢。

【问题讨论】:

    标签: java swing dll desktop-application


    【解决方案1】:

    当 java 代码加载本地库(通常通过System.load() 完成)时,此调用是对 OS 的本地调用。 DDL 的实际加载是由操作系统完成的(如果不是这样,请纠正我)。在这种情况下,操作系统将需要一个 确定路径 到要加载的 dll。如果 DLL 在某个 jar 文件中,则操作系统无法识别 jar 文件结构(它只能由 java 运行时解释),因此在 jar 中打包时不会找到这些文件。

    仅举个例子,对于标准 JDK 发行版,所有类文件都打包在 rt.jar 文件中,而所有本机代码 DLL(套接字、awt 等)都位于单独的位置 (jre/bin)。所以我的建议是,创建两组文件一个 jar 和其他 DLL。创建一个 ZIP 存档。现在,如果有人需要使用它,必须解压缩,将 jar 保存在 classpath 中,将 DLLs 保存在 PATH 中。

    【讨论】:

    • 是的,DLL 加载是由操作系统完成的,如果 DLL 存储在 jar 中,则必须先将它们提取到 (Windows) 文件系统的某个位置,然后才能加载它们。没有办法解决它。
    猜你喜欢
    • 2020-06-07
    • 1970-01-01
    • 2012-02-06
    • 2012-03-28
    • 1970-01-01
    • 2012-12-02
    • 1970-01-01
    • 2014-10-05
    • 1970-01-01
    相关资源
    最近更新 更多