我正在开发一个运行 shell 脚本的 Java 桌面应用程序。该脚本应该运行使用 C 生成的可执行文件。我的 C 代码生成的可执行文件依赖于共享库。
我不想在应用程序中包含 C 代码。因此,当我希望分发它时,我将无法在客户端的 PC 上生成新的可执行文件。正如我所读到的,目标代码以及可执行文件都是依赖于机器的,因此我将无法在具有不同硬件配置的客户端机器上运行此可执行文件(通过在我的机器上编译和链接生成)。
现在我只在 JAR 中包含了可执行文件,并且我能够在 Java 中运行 shell 脚本(在 Java 中使用 Runtime.getRuntime().exec(shell_script))。正如我之前所说,此可执行文件依赖于共享库,当软件(执行脚本)在不同的 PC 上运行时,它会报告错误,指出缺少其中一个共享库。
我想要关于如何运行在不同计算机上编译和链接的可执行文件的建议,该可执行文件依赖于桌面应用程序中的共享库(需要分发)。
如果我有任何错误或者您觉得我误解了任何概念,请发表评论。 提前致谢。
最佳答案
- 将您的 C 代码编译为每个受支持的不同可执行文件 操作系统并将它们全部放入您的 JAR 文件中。
- 从 Java 应用程序中检测当前操作系统并 extract the proper executable for that OS from your JAR file.
- 运行提取的可执行文件。
关于java - 是否可以分发使用 C 生成的可执行文件的 java 桌面应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49795158/