我一直在尝试将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插件。
最佳答案
现在是我部署它的时候了,因此我需要将其转换为exe。
这两个陈述在一起没有意义。我们无法部署Swing桌面应用程序。使用基于Windows的可执行文件来* nix或OSX。部署Java桌面应用程序的最佳选择。通常来自使用Java Web Start的网页链接。
从BlueCove Documentation: Installation:
安装
BlueCove依赖于操作系统或Bluetooth USB设备随附的已安装的本机Bluetooth堆栈。
BlueCove的二进制(已编译)版本的安装如下:
下载BlueCove二进制发行版
将bluecove.jar
添加到您的类路径中
如果您正在Linux上运行应用程序,还可以将bluecove-gpl.jar
添加到类路径中
这意味着类似以下内容。 2个基于Java Web Start的JNLP扩展:
BlueCove主要API(bluecove.jar
)的扩展以支持Windows和OS X,以及Linux所需的核心类。该“主” JNLP文件将具有特定于Linux的资源部分,而该资源部分又引用了“仅Linux”扩展名JNLP。
Linux专用API(bluecove-gpl.jar
)的扩展,其中包括安装程序元素,用于为用户弹出许可证提示(如果需要,整个扩展仅对于产生许可证提示是必需的)。这是一个小的demo. of the ExtensionInstallerService
,它将显示许可协议。
..这是否要求用户在使用该应用程序时始终保持互联网连接,还是仅仅是第一次激活需要互联网?
Java Web Start客户端(启动适当的JVM的应用程序和您的应用程序)通常会向主服务器返回以查找与该OS相关的应用程序Jar的更新。幸运的是,可以通过在JNLP中指定一个元素来配置何时以及如何进行检查以及是否可以根据需要“脱机”运行应用程序:
<offline-allowed />
offline-allowed
元素(jnlp
element的一部分)确保在初始安装后应用程序。可以离线使用。