安装了Java 7u9和Eclipse(Juno),但Eclipse没有看到JavaFX2

时间:2012-11-21 18:30:40

标签: java eclipse javafx-2

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

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

非常感谢:)

2 个答案:

答案 0 :(得分:8)

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

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

答案 1 :(得分:2)

jfxrt.jar添加到项目构建路径将使eclipse能够找到它并允许您从eclipse中开发和执行代码。但是,在部署软件时,除非您将其放在类路径上,否则它将无法再找到jfxrt.jar。这会变得混乱,因为你必须找到jdk / jre的位置并在里面搜索jfxrt.jar的位置。

据我了解,长期计划是将jfxrt.jarlib中的jre文件夹移至lib/ext文件夹。这将把它放在默认找到它的地方,而不需要在类路径中添加东西。不幸的是,在Java 8发布之前不太可能发生这种情况!

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

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