是否可以分发使用 C 生成的可执行文件的 java 桌面应用程序?

Is is possible to distribute java Desktop application which uses executables generated using C?

我正在开发 Java 桌面应用程序,其中 运行 是一个 shell 脚本。该脚本应该 运行 使用 C.The 生成的可执行文件,我的 C 代码生成的可执行文件依赖于共享库。

我不想在应用程序中包含 C 代码。因此,当我希望分发新的可执行文件时,我将无法在客户端的 PC 上生成新的可执行文件。正如我所读到的,目标代码和可执行文件都依赖于机器,因此我无法在具有不同硬件配置的客户端机器上 运行 这个可执行文件(通过在我的机器上编译和链接生成) .

现在我只在 JAR 中包含了可执行文件,我能够 运行 Java 中的 shell 脚本(使用 Runtime.getRuntime().exec( shell_script) 在 Java)。正如我之前所说,这个可执行文件依赖于共享库,当软件(执行脚本)在不同的 PC 上 运行 时,它会报告一个错误,指出缺少一个共享库。

我想要一个关于如何 运行 在不同机器上编译和链接的可执行文件的建议,它依赖于桌面应用程序中的共享库(需要分发)。

如果我哪里出错或者您觉得我误解了任何概念,请发表评论。 提前致谢。

  1. 将您的 C 代码编译成每个支持的不同的可执行文件 OS 并将它们全部放入您的 JAR 文件中。
  2. 从您的 Java 应用程序和 extract the proper executable for that OS from your JAR file.
  3. 检测当前 OS
  4. 运行 提取的可执行文件。