如何将JavaFX2.0类添加到现有的Maven项目中?

如何将JavaFX2.0类添加到现有的Maven项目中?,maven,javafx,Maven,Javafx,我有一个Maven项目,它只在xy轴上显示一个图形。我想将该图形更改为JavaFX2.0折线图以显示相同的数据。我尝试使用FEST javafx maven插件,但仍然无法编译代码;编译器无法找到所有javafx.xxx导入 任何帮助都将不胜感激。更新(2015年10月6日) 现代JavaFX版本(与Oracle Java 8+一起提供)不需要任何额外的类路径来使用JavaFX。JavaFX运行时位于Java用于编译和执行的默认类路径上。这意味着一个普通的maven pom.xml文件(没有额外

我有一个Maven项目,它只在xy轴上显示一个图形。我想将该图形更改为JavaFX2.0折线图以显示相同的数据。我尝试使用FEST javafx maven插件,但仍然无法编译代码;编译器无法找到所有javafx.xxx导入

任何帮助都将不胜感激。

更新(2015年10月6日)

现代JavaFX版本(与Oracle Java 8+一起提供)不需要任何额外的类路径来使用JavaFX。JavaFX运行时位于Java用于编译和执行的默认类路径上。这意味着一个普通的maven pom.xml文件(没有额外的依赖项)将构建一个JavaFX应用程序

但是,如果您希望为您的应用程序使用其他打包功能,例如将其部署为的功能,那么我建议使用(第三方)

先前的答复

此答案中的以下信息现在大多陈旧过时

我找到的fest maven插件()的链接指向一个用于构建JavaFX 1.x脚本项目的工具,它与JavaFX 2.0完全不同且不兼容—我不确定是否有支持JavaFX 2.0的fest maven插件的更新版本

目前没有Oracle对Maven的官方支持,也没有公共托管Maven存储库中的JavaFX2.0版本

然而,我在过去成功地使用maven构建了JavaFX2.0项目,方法是在jfxrt.jar上使用系统范围的依赖项,并(可选地)从maven调用JavaFXAnt任务

如果通过JFXPanel将图形嵌入到现有Swing应用程序中,则不需要使用JavaFXAnt任务。从JavaFX运行时添加jfxrt.jar作为系统依赖项,或者手动将其安装到maven存储库中,以使用非系统范围的依赖项

手动安装所需JavaFX 2.0运行时jar的命令示例如下:

mvn install:install-file -Dfile="C:\Program Files\Oracle\JavaFX 2.1.0 SDK\rt\lib\jfxrt.jar" -DgroupId=com.oracle.javafx -DartifactId=javafx -Dversion=2.1 -Dpackaging=jar
运行上述命令后,将jfxrt.jar文件中的依赖项添加到maven pom中,项目编译应解析所有JavaFX API引用:

<dependency>
  <groupId>com.oracle.javafx</groupId>
  <artifactId>javafx</artifactId>
  <version>2.1</version>
</dependency>

com.oracle.javafx
表现出这样的适应性

这些线程讨论了JavaFX2.0 maven支持,并提供了进一步的背景信息和示例:


    • 我也遇到了同样的问题,下面是我的解决方案:

      如果使用Java 7u7(javafx集成到jdk/jre中):

      
      javafx
      javafx
      2.1
      系统
      ${java.home}/lib/jfxrt.jar
      
      对于java的早期版本:

          <dependency>
              <groupId>javafx</groupId>
              <artifactId>javafx</artifactId>
              <version>2.1</version>
              <scope>system</scope>
              <systemPath>${env.JAVAFX_HOME}\rt\lib\jfxrt.jar</systemPath>
          </dependency>
      
      
      javafx
      javafx
      2.1
      系统
      ${env.JAVAFX_HOME}\rt\lib\jfxrt.jar
      

      您必须设置系统变量JAVAFX_HOME to HOME dir of JAVAFX。

      您可以尝试以下方法。这负责将javafx添加到类路径,构建javafx应用程序,创建Windows/Mac/Linux可执行文件,以及双击JAR和JNLP文件

      使用JDK1.7,您必须执行以下mvn目标

        mvn com.zenjava:javafx-maven-plugin:2.0:fix-classpath   
      
      此命令将更改JRE的类路径,并将jfxrt.jar复制到JAVA_HOME\lib\ext目录

      更多信息,请查看此处:

      在pom文件中,必须添加以下依赖项配置

           <dependency>
              <groupId>javafx</groupId>
              <artifactId>jfxrt</artifactId>
              <version>2.2</version>
              <!-- <version>${javafx.min.version}</version> -->
              <scope>system</scope>
              <systemPath>${java.home}/lib/ext/jfxrt.jar</systemPath>
          </dependency>
      
      
      javafx
      jfxrt
      2.2
      系统
      ${java.home}/lib/ext/jfxrt.jar
      
      感谢您迄今为止的所有帮助。我真正想做的是用JFX2.0折线图替换现有的带有图形的JPanel。我认为这在不重新绘制整个JFrame等的情况下是可行的?是的,只要用JFXPanel替换JPanel,请参见此处获取文档=>有关如何使用JFXPanel的示例,Oracle提供了一个SwingInterOp演示-您可以试用该演示并从此处下载其源代码:。SwingInterOp演示将JavaFX图形放在Swing应用程序的面板中,这似乎正是您想要做的。
           <dependency>
              <groupId>javafx</groupId>
              <artifactId>jfxrt</artifactId>
              <version>2.2</version>
              <!-- <version>${javafx.min.version}</version> -->
              <scope>system</scope>
              <systemPath>${java.home}/lib/ext/jfxrt.jar</systemPath>
          </dependency>