0

我在 JavaFX 中创建了一个简单的 Java 地图场景。我将 jfxrt.jar 放入项目中的 lib 文件夹中,但我还需要本地库来使用某些组件:例如 Windows 上的 glass.dll 和 MacOsX 上的 libglass.dylib。我有几个问题:

  1. 我应该在哪里添加这些库?到 /rt/?
  2. 它是 Swing 应用程序,客户端使用 Java WebStart 启动它。如何将依赖项添加到这些本机库?
  3. x32 / x64 Windows 版本呢?jfxrt.jar 对于 32 位和 64 位系统是不同的。
4

1 回答 1

1

我应该在哪里添加这些库?到 /rt/?

您可以将库放置在相对于您放置 jfxrt.jar 的位置的 ../bin 中。还没有尝试过,但我认为它会起作用,因为这是 JavaFX 发行版使用的目录结构。

将本机库嵌入到通过 webstart 包交付的 Swing 应用程序中并不是记录在案的部署选项。我建议您不要这样做,而是检查您的 Swing 应用程序中是否存在 JavaFX,如果 JavaFX 不存在,则启动指向 JavaFX 运行时下载和安装页面的浏览器 -此处的说明。例如:

try {
  new javafx.util.Pair("a","b"));
} catch (ClassNotFoundException e) {
  java.awt.Desktop.getDesktop().browse(new URI("http://www.java.com/en/javafx/"));
}

它是 Swing 应用程序,客户端使用 Java WebStart 启动它。如何将依赖项添加到这些本机库?

如果您的应用程序仍在开发中,并且可以在几个月内针对 JavaFX 2.2 发布,那么您可以将应用程序所需的最低版本设置为 JDK7u6(其中将包括 JavaFX 2.2 运行时库),那么您不会不必担心它们的分布,并且部署场景要简单得多。

不确定在 Windows 之外是否支持(甚至可以工作)通过 WebStart 部署的 Swing 中嵌入的 JavaFX 2.1。您可能需要等待 2.2 版本来获得对 JavaFX 应用程序的 Mac 和 Linux webstart 支持。

x32 / x64 Windows 版本呢?jfxrt.jar 对于 32 位和 64 位系统是不同的。

如果您的应用程序是从浏览器启动的,那么浏览器拥有的任何位都是 JavaFX 和 Java 所需的位。今天的大多数浏览器(至少在 Windows 下)都是 32 位的,即使用户使用的是 64 位操作系统 - 所以需要注意这一点。当您使用 WebStart 时,它可能不依赖于浏览器位匹配(在这种情况下,您至少应该匹配 JavaFX 和 Java 的位版本)。

于 2012-05-25T18:19:14.707 回答