带有外部库的Jar-to-exe



我一直在尝试将jar转换为exe。这个程序——jar——使用了一个蓝牙库"Bluecove",这是某个目录中的另一个jar。该程序还使用JavaSwing,通常是JFrame之类的。该程序在Netbeans或Eclipse中运行时工作得非常好。现在是我部署它的时候了,因此我需要将它转换为exe。但我一直无法获得与"Bluecove"链接的最终可执行文件。我尝试了JSmooth和Launch4j,但两者都有,尽管我可以完成这个过程并创建"exe",但最终程序没有运行,因为它找不到Bluecove类。

关于如何避开这个问题,有什么建议吗?这些转换器都没有任何关于与库链接的文档。感谢您的帮助。

解决方案:谢谢大家的回答!我使用了Andrew Thompson建议的方法来部署我的程序,效果很好。为了创建JAR,我更喜欢将所有内容都放在一个JAR中,正如Abdullah Shaikh所建议的那样。我使用了Fat Jar Eclipse插件。

现在是我部署它的时候了,因此我需要将它转换为exe。

这两种说法放在一起没有意义。我们无法部署Swing桌面应用程序。使用基于Windows的可执行文件来*nix或OS X。部署Java桌面应用程序的最佳选项。通常来自使用Java web Start的网页上的链接。

来自BlueCove文档:安装:

安装

BlueCove依赖于您的操作系统或蓝牙USB设备附带的已安装的本地蓝牙堆栈。

BlueCove二进制(已编译)版本的安装如下:

  • 下载BlueCove二进制版本
  • bluecove.jar添加到类路径
  • 如果您在Linux上运行应用程序,请将bluecove-gpl.jar添加到类路径中

这将意味着以下内容。2个基于Java Web Start的JNLP扩展:

  1. BlueCove主API(bluecove.jar)的扩展,以支持Windows和OSX,以及Linux所需的核心类。这个"主"JNLP文件将有一个特定于Linux的资源部分,它反过来引用了"仅限Linux"的扩展JNLP
  2. 特定于Linux的API(bluecove-gpl.jar)的扩展,其中包括一个安装程序元素,用于为用户弹出许可证提示(如果需要,整个扩展仅用于生成许可证提示)。这是一个小演示。将显示许可协议的CCD_ 6

这会要求用户在使用应用程序时始终连接互联网吗?还是第一次激活需要互联网?

Java Web Start客户端(启动适当JVM和应用程序的应用程序)通常会向主服务器查询与该操作系统相关的应用程序Jars的更新。幸运的是,它可以通过在JNLP:中指定一个元素来配置检查的时间和方式,以及是否可以根据需要"离线"运行应用程序

<offline-allowed />

offline-allowed元素(jnlp元素的一部分)确保初始安装后应用程序。可以离线使用。

确保在创建启动器时将bluecove JAR添加到类路径中:在JSmooth中设置类路径,在Launch4j中设置类道路。

在jar中,您需要放置所有依赖的jar,或者您可以使用class Path头为您的jar创建清单。

你也可以试试胖罐子扩展或一个罐子

为了解决这个问题,您将所有依赖的jar放在最终的jar文件中
在eclipse中,您可以通过以下方式执行此操作:File -> Export -> Java -> Runnable Jar File -> (Select the option) Package required libraries into generated jar
现在使用这个jar创建一个exe,使用您选择的任何jar到exe转换器
希望这对有帮助

最新更新