java - 如何制作包含DLL的Jar?

标签 java deployment dll jar native

我有一个 Jar,它从配置文件中指定的某个路径获取 DLL。 我将该配置文件保存在执行应用程序的位置。 该 DLL 也安装在其他地方。

现在我想要制作我的 Jar,它应包含(类 &)DLL。我不想提供任何路径,因为该配置文件可能不存在。

如何继续此操作?如何制作 jar 以及我需要做什么更改?

最佳答案

如果你的应用程序。有一个 GUI,在应用程序的运行时类路径中包含 native 库的简单方法是使用 Java Web Start来部署它。以下是 JNLP 的资源部分的方式启动文件可能看起来。

<resources >
    <j2se version="1.6+"/> 
    <!-- Supply this resource to all -->
    <jar href="ourapp.jar" size="100000" />
</resource>
<!-- Supply this resource to SunOS/sparc only -->
<resources os="SunOS" arch="sparc">
    <nativelib href="sunlibs.jar" size="250000" />
</resource>
<!-- Supply this resource to Windows only -->
<resources os="Windows">
    <nativelib href="winlibs.jar" size="300000" />
</resource>

JWS 对下载进行分区,Mac 也是如此。任何非 SunOS *nix 都只能获得 100,000 字节的核心 Java。 SunOS 的总下载量为 350,000 字节,Windows 为 400,000 字节。然后,应用程序可以使用以下方式加载 native :

System.loadLibrary("ournative");

之后,应加载 native 并准备好在为其提供 native 的任何操作系统中使用。

部署通过。 JWS 具有许多优势,包括:

  • 一种跨平台且便捷的原生部署方式。
  • 原生的分区下载。
  • 自动更新应用程序资源(类、原生等)
  • 通过自动更新避免“DLL Hell”。

关于java - 如何制作包含DLL的Jar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7480774/

相关文章:

c# - 将 C# 字符串传递给 C++ dll 在发布版本中失败

java - 使用@Column获取变量

java - 如何安装 JCommander 并在我的程序中使用它?

java - 使用 getActionCommand 的 setText 问题

zend-framework - 服务器中的zend框架部署

dll - 是共享库/dll中的全局变量,跨进程共享

java - 创建 JSON 数据

deployment - 部署JavaFX应用程序时出现运行时错误

node.js - 零停机部署 Nodejs 应用程序

python - 我是否正确使用 ctypes 来 pythonify 这个结构?