在Windows 7上安装和导入javafx

use*_*362 7 java javafx

我已经安装了jdk1.7.0_07并更改了PATH,但我仍然无法导入javafx,我应该做些什么来解决这个问题?

jew*_*sea 11

确保/jre/lib/jfxrt.jar在您的编译路径上.

例如,对于win7上的64位jdk7u6版本,jfxrt.jar位于:

C:\Program Files\Java\jdk1.7.0_06\jre\lib\jfxrt.jar
Run Code Online (Sandbox Code Playgroud)

jfxrt.jar专门用于jdk1.7.0_06的java运行时路径,直到JavaFX与其他Java基础结构之间的进一步测试完成为止.这意味着非JavaFX程序不可能受到可能由JavaFX引起的兼容性问题的影响.到目前为止,我从未遇到任何兼容性问题 - 这只是甲骨文在这方面的谨慎行动.

在将来的版本中,应将jfxrt.jar添加到Java的缺省编译和运行时类路径中,下面的一些信息应该是无关紧要的.您可以跟踪将jfxrt.jar添加到默认Java运行时请求.

从命令行编译和运行JavaFX程序

以下示例适用于名为的JavaFX应用程序类 javafxsamples.AudioPlaylist

如果要从命令行进行编译,请使用以下命令编译:

javac -cp ".;C:\Program Files\Java\jdk1.7.0_06\jre\lib\jfxrt.jar" javafxsamples/AudioPlaylist.java
Run Code Online (Sandbox Code Playgroud)

要从命令行运行,您可以使用:

java -cp ".;C:\Program Files\Java\jdk1.7.0_06\jre\lib\jfxrt.jar" javafxsamples.AudioPlaylist
Run Code Online (Sandbox Code Playgroud)

但是,建议您使用javafxpackager打包应用程序,而不是手动将jfxrt.jar添加到类路径中(javafxpackager打包的应用程序将嵌入一个启动器,找到jfxrt.jar并将其添加到类路径中).

javafxpackager -createjar -nocss2bin -appclass javafxsamples.AudioPlaylist -srcdir . -outfile AudioPlaylist.jar
Run Code Online (Sandbox Code Playgroud)

之后,您可以运行应用程序,而无需在类路径上指定jfxrt.jar位置:

java -jar AudioPlaylist.jar
Run Code Online (Sandbox Code Playgroud)

使用IDE编译和运行JavaFX程序

NetBeans的

如果您使用的是NetBeans 7.2+,则可以创建JavaFX项目类型,当您将jdk1.7.0_07设置为您的平台时,它应该自动找到JavaFX jfxrt.jar并将其放在项目的类路径中.

日食

如果您使用的是e(fx)clipse,请确保使用的是最新版本(0.0.14+),它具有更好的检测JavaFX的功能.

理念

Intellij Idea 11.1.3会自动将jre lib目录中的所有文件添加到它的项目类路径中,因此不应该使用它来获得编译错误.请注意,Idea在这方面的行为是错误的,它不应该真的这样做,但它最终会导致能够从想法编译和运行JavaFX类的预期行为.

使用maven构建JavaFX程序

  • 使jfxrt.jar成为maven项目的系统依赖项,以使其在路径上获取.
  • 使用maven antrunner执行部署打包的javafx ant任务.

maven项目中提供了使用maven打包JavaFX的示例.


即使您使用IDE或Maven进行构建,仍然建议您使用javafx ant任务或javafxpackager实用程序打包您的应用程序,因为这应该为您的应用程序提供最强大的部署解决方案.