1

我尝试按照各种教程让 JavaFX hello world 应用程序在浏览器中运行。我不敢相信这有那么难,所以我正在寻找任何关于我可能做错了什么的见解。我尝试并解决了一些事情(排除明显的):

  • 必须为浏览器下载 32 位 JRE 并确保它们正在使用它
  • 因此使用最新的JRE(7u21);在 Win 7 64 位上运行
  • 检查 Windows 控制面板 -> 程序 -> Java 以验证正在使用的 JRE
  • 签署 JAR 文件
  • 尝试从本地文件运行,发现驱动器号无法识别,因此转移到通过 Tomcat 6 运行
  • 尝试了对代码库和 url href 的各种更改,但我相信这些都是正确的。
  • 在 IE 10 和 Chrome 中都试过了

我最终得到的是加载.html(使用JavaFX默认javascript引用jnlp)会旋转一段时间然后失败。如果我尝试直接加载 .jnlp 文件,则会出现异常:

ClassNotFoundException: javafx.application.Application

我确认 jfxrt.jar 位于浏览器正在使用的 JRE 的 lib 文件夹中。

关于我此时可能缺少什么的任何见解/建议?似乎在这一点上它必须是明显/基本的,但我没有看到它。谢谢。

4

3 回答 3

1

只是为了跟进,我继续使用 javafxpackager。这产生了一个网页,可以在 Chrome 中加载 JavaFX 应用程序。但是,它仍然无法在 IE 中运行。我将把它写成 IE,但因为它可以在 Chrome 中运行。但是,通过查看结果,我确实了解到 javafxpackager 做了几件事,其结果与大多数手动教程/示例中所描述的并不完全相同。细微的差异,但显然它们很重要。

于 2013-05-18T21:06:04.493 回答
0

听起来您的 JAR 中没有 JavaFX 入门类(通常由 Ant 脚本完成)并且没有正确的 JavaFX Manifest 条目。

不需要将 jfxrt.jar 作为资源添加到您的 JNLP 文件中,并且您不必对其进行签名。

请出示您的清单文件。

清单文件应至少包含以下 JavaFX 条目:

JavaFX-Version: 2.2
JavaFX-Application-Class: yourPackage.YourApplication
Main-Class: com/javafx/main/Main

JAR 应该包含com.javafx.main由 ant-javafx.jar 提供的包的类(请参阅该 Jar 中的 /resources/classes)。ant-javafx.jar 由 JDK 提供。

于 2013-05-15T08:09:41.173 回答
-1

我能够主要解决我的问题。我使用的是 Eclipse,而不是 NetBeans,所以手动做了很多。基本问题是我必须将 jfxrt.jar 作为资源包含在 jnlp 文件中(并且该 jar 也必须签名)。

如果我直接访问 jnlp,我的应用程序现在可以运行,尽管它仍然无法通过 html 页面运行。如果/当我弄清楚那部分时,我会发布更新。

于 2013-05-15T02:41:46.510 回答