我一直在尝试将 jar 转换为 exe。该程序 - jar - 使用蓝牙库“Bluecove”,它是某个目录中的另一个 jar。该程序还使用 Java Swing,通常是 JFrame
等。当从 Netbeans 或 Eclipse 中运行时,该程序可以完美运行。现在是我部署它的时候了,因此我需要将它转换为 exe。但我一直无法获得与“Bluecove”链接的最终可执行文件。我试过JSmooth和 Launch4j ,但是对于两者,虽然我可以完成该过程并创建“exe”,但最终的程序没有运行,因为它找不到 Bluecove 类。
关于如何解决这个问题有什么建议吗?这些转换器都没有任何有关与库链接的文档。如有任何帮助,我们将不胜感激。
解决方案: 谢谢大家的回答!我使用 Andrew Thompson 建议的方法来部署我的程序,效果非常好。为了创建 JAR,我更喜欢将所有内容都放在一个 JAR 中,正如 Abdullah Shaikh 所建议的那样。我为此使用了 Fat-Jar Eclipse 插件。
最佳答案
It's time for me to deploy it, hence I need to convert it to exe.
这两种说法放在一起没有意义。我们无法部署 Swing 桌面应用程序。使用基于 Windows 的可执行文件到 *nix 或 OS X。部署 Java 桌面应用程序的最佳选择。通常来自网页上使用 Java Web Start 的链接.
来自BlueCove Documentation: Installation :
Installation
BlueCove rely upon already installed native Bluetooth stack that comes with you operating system or Bluetooth USB device.
Installation of the binary (already compiled) version of BlueCove is as follows:
- Download BlueCove binary release
- Add
bluecove.jar
to your classpath- Also add
bluecove-gpl.jar
to your classpath if you are running application on Linux
这意味着类似以下内容。 2 个基于 Java Web Start 的 JNLP 扩展:
- BlueCove 主 API (
bluecove.jar
) 的扩展,用于支持 Windows 和 OS X,以及 Linux 所需的核心类。这个“主”JNLP 文件将具有特定于 Linux 的资源部分,该部分又引用“仅限 Linux”扩展 JNLP。 - Linux 特定 API 的扩展 (
bluecove-gpl.jar
),其中包括一个安装程序元素,用于向用户弹出许可证提示(如果需要,整个扩展仅在生成许可证提示)。这是一个小demo. of theExtensionInstallerService
这将显示许可协议(protocol)。
..would this require the user to always have an internet connection when using the application, or is it just the first time activation that requires internet?
Java Web Start 客户端(启动适当的 JVM 和您的应用程序的应用程序)通常会向主服务器检查与该操作系统相关的应用程序 Jars 的更新。幸运的是,通过在 JNLP 中指定一个元素,可以配置检查何时以及如何完成,以及应用程序是否可以根据需要“离线”运行:
<offline-allowed />
offline-allowed
元素( jnlp
element 的一部分)确保在初始安装后应用程序。可以离线使用。
关于java - 使用外部库将 Jar 转换为 exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14807705/