如何将JavaFX2.0类添加到现有的Maven项目中?
我有一个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的命令示例如下:如何将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文件(没有额外
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>