分发/部署 JavaFX 应用程序

Posted

技术标签:

【中文标题】分发/部署 JavaFX 应用程序【英文标题】:Distributing/deploying JavaFX apps 【发布时间】:2010-12-27 23:36:30 【问题描述】:

我刚刚在 JavaFX 中完成了一个小应用程序,并开始考虑如何分发它。 我认为这将是一个简单的问题,只需点击构建按钮并使用其中一个生成的文件。

由于某种原因构建创建:

    Jar 文件抱怨双击时找不到它的主类。 一个 jnlp 文件未能显示“无法启动应用程序”。 一个 html 文件,当在我的浏览器中打开时,它会永远显示一个旋转的 java 徽标。

所有这些都让我相信我的 Java 设置有问题。我怎样才能把这个项目打包出去?

我想要一个可以下载/通过电子邮件发送、双击和运行而无需大惊小怪的文件。除此之外,一切都很容易。 :) 我很确定你可以用一个 Jar 文件来做到这一点,但是我用 Netbeans 和它的构建命令得到的东西是非常荒谬的。

重要细节:我正在运行 Ubuntu Karmic。我已经切换到 Sun Java 而不是 OpenJDK(这似乎非常糟糕地处理 JavaFX),但我认为 firefox 仍在使用 OpenJDK。

【问题讨论】:

【参考方案1】:

在过去,当使用 Netbeans 创建 JavaFX 时,我只使用了它创建的 jar 文件,而不是 jnlp 或 html(如果我的记忆正确,它指向 localhost)。话虽如此,我手动创建 .jnlp 以发布到我的服务器。 下面是我在www.ericonjava.com 使用的.jnlp 的副本

 <?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://www.ericonjava.com/" href="bubblebreaker/bubblebreaker.jnlp">
<information>
    <title>Bubble Breaker</title>
    <vendor>www.ericonjava.com</vendor>
    <homepage href="http://www.ericonjava.com"/>
    <description>Bubble Breaker</description>
    <offline-allowed/>
</information>
    <j2se href="http://java.sun.com/products/autodl/j2se" version="1.6+"/>
<property name="jnlp.packEnabled" value="true"/>
    <extension name="JavaFX Runtime" href="http://dl.javafx.com/1.1/javafx-rt.jnlp"/>
      <jar href="bubblebreaker/BubbleBreaker.jar" main="true"/>
</resources>
<application-desc main-class="bubblebreaker.Test"/>

重要的标签元素是:

    codebase="http://www.ericonjava.com" ...这应该是您的网址 href="bubblebreaker/bubblebreaker.jnlp ...服务器上.jnlp的相对路径 jar href="bubblebreaker/BubbleBreaker.jar"...您服务器上 .jar 的相对路径 application-desc main-class="bubblebreaker.Test" ...包名和类名

同样在 netbeans 中构建时...确保您右键单击项目选项卡并转到属性部分以设置诸如启用 pack200/可拖动小程序之类的属性。

我希望这会有所帮助。

【讨论】:

以上是关于分发/部署 JavaFX 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

使用 java11 构建和部署 javafx 应用程序

部署JavaFx应用程序jar

如何签署 JavaFX 应用程序并将其部署到单个 .JAR 中?

部署 JavaFX 应用程序、创建 JAR 和自包含应用程序以及本机安装程序的最佳方式是啥

如何在单个.JAR中签署和部署JavaFX应用程序?

如何使用 maven 部署 JavaFX 项目,包括自定义和非模块化依赖项?