分发/部署 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 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
如何签署 JavaFX 应用程序并将其部署到单个 .JAR 中?