我有一个只在xy轴上显示图形的Maven项目。我想将该图更改为Javafx 2.0线图以显示相同的数据。我尝试使用FEST-javafx-maven插件,但我仍然无法编译代码;编译器找不到所有的javafx.xxx导入。
任何帮助都将不胜感激。
答案 0 :(得分:8)
更新(2015年10月6日)
现代JavaFX版本(Oracle Java 8+附带)不需要任何其他类路径来使用JavaFX。 JavaFX运行时位于Java用于编译和执行的默认类路径上。这意味着没有其他依赖关系的普通maven pom.xml文件将构建JavaFX应用程序。
但是,如果您希望为应用程序使用其他打包功能,例如将其部署为self-contained application,则建议使用(第三方)JavaFX Maven plugin。
上一个答案
此答案中的以下信息现在已经过时且过时了。
我找到的fest maven插件的链接(http://fest.easytesting.org/javafx/maven/)是用于构建JavaFX 1.x脚本项目的工具,这是一个与JavaFX 2.0完全不同且不兼容的野兽 - 我不确定是否有一个支持JavaFX 2.0的fest maven插件的更新版本。
目前没有官方支持来自Oracle的Maven,也没有公开托管的Maven存储库中的JavaFX 2.0版本。
但是,我过去使用maven成功构建了JavaFX 2.0项目,方法是使用jfxrt.jar上的系统作用域依赖项,并(可选)从maven调用JavaFX ant任务。
如果您通过JFXPanel将图形嵌入到现有的Swing应用程序中,那么您不需要使用JavaFX ant任务。从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>
如果您扩展JavaFX Application类并且希望打包通过webstart,浏览器嵌入或作为JavaFX安装感知可点击jar进行部署,那么您应该调整pom.xml文件以执行相关的JavaFX 2.0 ant任务 - http://code.google.com/p/willow-browser/source/browse/pom.xml证明了这种适应性。
这些主题讨论JavaFX 2.0 maven支持并提供进一步的背景信息和示例:
答案 1 :(得分:3)
我遇到了同样的问题,这是我的解决方案:
如果使用Java 7u7(javafx集成到jdk / jre中):
<dependency>
<groupId>javafx</groupId>
<artifactId>javafx</artifactId>
<version>2.1</version>
<scope>system</scope>
<systemPath>${java.home}/lib/jfxrt.jar</systemPath>
</dependency>
对于以前版本的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_HOME设置为JavaFx的主目录。
答案 2 :(得分:0)
您可以尝试JavaFX Maven plugin。这需要将javafx添加到类路径以及构建JavaFX应用程序和创建Windows / Mac / Linux可执行文件,以及双击JAR和JNLP文件。
答案 3 :(得分:0)
使用JDK 1.7,您必须执行以下mvn目标。
mvn com.zenjava:javafx-maven-plugin:2.0:fix-classpath
此命令将更改JRE的类路径,并将jfxrt.jar复制到JAVA_HOME \ lib \ ext目录。
请在此处查看更多信息: JavaFX Maven Plugin
在您的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>