7

在我阅读的所有地方,从 Java 7u7 开始,JavaFX2 都与 JRE 和 JDK 捆绑在一起。所以我很困惑为什么当我运行 Eclipse 时,它​​告诉我“无法解析导入 javafx ”。

除了 7u9,我没有安装其他 JDK 或 JRE,那么为什么我无法从 Eclipse 中看到 JavaFX2?

非常感谢 :)

4

2 回答 2

8

不幸的是,对于 jdk7u9,当我们创建一个新的 Java 项目时,Eclipse 不会将jfxrt.jarjre\lib目录中的文件添加到项目构建路径库中。您必须手动完成,或者您可以将e(fx)clipse插件安装到 Eclipse,这将使您的 JavaFX 开发更容易:)

Eclipse 遵循 JRE 7u9 默认引导类路径的默认设置(不包括jfxrt.jar)。未来的 JRE 版本将放置jfxrt.jar在引导类路径中,因此您无需手动将jfxrt.jar文件添加到项目构建路径库中。您可以跟踪此JRE 功能

于 2012-11-21T18:48:43.870 回答
2

添加jfxrt.jar到项目构建路径将使 eclipse 能够找到它并允许您在 eclipse 中开发和执行您的代码。但是,当您部署您的软件时,它将不再能够找到jfxrt.jar,除非您也将它放在类路径中。这变得一团糟,因为您必须四处寻找jdk/的位置jre并在里面搜索jfxrt.jar.

据我了解,长期计划是jfxrt.jarlib文件夹移动jrelib/ext文件夹。这会将其放置在默认情况下可以找到的某个位置,而无需将内容添加到您的类路径中。不幸的是,这在 Java 8 发布之前不太可能发生!

同时,最简单的解决方案似乎是使用捆绑javafxpackager工具来创建您的 jar 文件,而不是使用jar工具。还有一个ant基于解决方案,但我不熟悉它。打包程序将创建您的 jar 文件,并插入一个启动器类,该类会找到 jfxrt.jar 并在运行时将其动态添加到您的应用程序的类路径中。如果jre或安装javafx太旧,它还会抱怨并提示用户下载较新的版本。然后它通过您在命令行中指定的类调用您的应用程序。(通常是你main()方法的类)。

它适用于本机 javafx 应用程序和普通的旧 Swing 应用程序。如果您的 jar 文件的清单中有额外的内容,例如另一个 ClassPath 条目,您也可以在命令行上指定它以包含在新的 jar 文件中。

于 2013-02-12T03:02:30.250 回答