首页 » java » 正文

Maven找不到Java7中的javafx

最近为自己开发的Restful服务框架做了一个新项目生成向导,向导需要一个界面填入一些必要的信息,心血来潮,使用了最新的javafx, 本地为jdk8,但是,项目在发布机器Linux上,找不到javafx包,查看发布环境:

JDK:7
Maven:3.2.3

开始尝试把找到javafx的jar包加入到mvn类路径下,并且加入到mvn可执行文件的最前头:

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:/home/jenkins/jenkins/jdk7/jre/lib/jfxrt.jar

但是,编译的时候仍然找不到javafx相关的类,然后尝试修改了其他的类路径,Maven编译时还是找不到javafx包,可见maven在编译项目时候使用的类路径和maven自用的类路径不一样。

无奈之下,将javafx的jar包上传到maven私服:

mvn deploy:deploy-file -DgroupId=javafx -DartifactId=jfxrt -Dversion=1.0 -Dpackaging=jar -Dfile=C:\Users\robert\Desktop\jfxrt.jar -Durl=http://server:port/nexus/content/repositories/releases/ -DrepositoryId=releases

请注意,上传maven私服之前,需要在maven的settings.xml加入权限设置:

<servers>
<server>
<id>releases</id>
<username>deployment</username>
<password>deployment123</password>
</server>
<server>
<id>snapshots</id>
<username>deployment</username>
<password>deployment123</password>
</server>
</servers>

然后,在项目的pom.xml加入如下的依赖:

<dependency>
<groupId>javafx</groupId>
<artifactId>jfxrt</artifactId>
<version>1.0</version>
</dependency>

到此,问题解决。