java - 使用外部库将 Jar 转换为 exe

标签 java swing deployment exe executable-jar

我一直在尝试将 jar 转换为 exe。该程序 - jar - 使用蓝牙库“Bluecove”,它是某个目录中的另一个 jar。该程序还使用 Java Swing,通常是 JFrame 等。当从 Netbeans 或 Eclipse 中运行时,该程序可以完美运行。现在是我部署它的时候了,因此我需要将它转换为 exe。但我一直无法获得与“Bluecove”链接的最终可执行文件。我试过JSmoothLaunch4j ,但是对于两者,虽然我可以完成该过程并创建“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 扩展:

  1. BlueCove 主 API (bluecove.jar) 的扩展,用于支持 Windows 和 OS X,以及 Linux 所需的核心类。这个“主”JNLP 文件将具有特定于 Linux 的资源部分,该部分又引用“仅限 Linux”扩展 JNLP。
  2. Linux 特定 API 的扩展 (bluecove-gpl.jar),其中包括一个安装程序元素,用于向用户弹出许可证提示(如果需要,整个扩展仅在生成许可证提示)。这是一个小demo. of the ExtensionInstallerService这将显示许可协议(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/

相关文章:

java - 查找arraylist中的重复元素并显示

java - 为什么我的程序抛出 StringIndexOutOfBounds 异常?

Java、Dropbox V2 : Get only names and paths of folders, 不是文件。

java - JFileChooser 和 FileDialog 的 UIManager 键是什么?

Java - PaintComponent 导致我的程序变慢

java - 单例的抽象基枚举/类

java - 跳转到 JEditorPane 中的内部 anchor

tomcat - Tomcat 6 中没有部署基于 JAX-WS 的 Web 服务的 WSDL

java - 如何构建一个包含运行 Java 应用程序所需的所有类的单个捆绑 JAR?

.net - VS2010 嵌套的 msi 安装程序