我正在使用NetBeans 7.0.1创建JavaFX 2.0应用程序。当我以标准的方式创建项目时,一切都很好。不幸的是,)我需要Maven项目…
我没有在Maven仓库中找到JavaFX 2.0,所以我的pom.xml现在看起来像这样:
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>mygroup</groupId>
<artifactId>ui</artifactId>
<version>0.1</version>
<name>My Project</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>javafx</groupId>
<artifactId>jfxrt</artifactId>
<version>2.0</version>
<type>jar</type>
<scope>system</scope>
<systemPath>${env.JAVAFX_HOME}libjfxrt.jar</systemPath>
</dependency>
</dependencies>
</project>
JAVAFX_HOME系统变量设置:
C:Usersrach>echo %JAVAFX_HOME%
C:Program FilesOracleJavaFX Runtime 2.0
编译正常,但是当我在NetBeans下启动程序时,我得到了错误:
Exception in thread "main" java.lang.NoClassDefFoundError: javafx/application/Application at java.lang.ClassLoader.defineClass1(Native Method)
但是jfxrt.jar在类路径中:
C:>echo %CLASSPATH%
C:Program FilesOracleJavaFX Runtime 2.0libjfxrt.jar
当我从命令行启动应用程序时,它工作得很好。
当我在运行时在本地存储库中安装jfxrt.jar时,应用程序仍然没有启动,因为它无法找到C:Program FilesOracleJavaFX runtime 2.0binmat.dll。Pom.xml:
<dependency>
<groupId>javafx</groupId>
<artifactId>jfxrt</artifactId>
<version>2.0</version>
<type>jar</type>
</dependency>
效应:
Exception in thread "main" java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: Can't load library: C:RepositoriesMavenRepojavafxjfxrtbinmat.dll at com.sun.javafx.tk.quantum.QuantumToolkit.startup(Unknown Source)
任何想法?
谢谢你的帮助。
那些使用JavaFX 2.0 SDK的人这里有简单的步骤
-
转到JavaFX 2.0 SDKrtlib(命令提示符)
-
执行mvn install:install-file -Dfile=jfxrt.jar -DgroupId=com。
oracle -DartifactId=javafx 将bin文件夹从JavaFX 2.0 SDKrt目录复制到。m2repositorycomoracle JavaFX目录
4。<dependency>
<groupId>com.oracle</groupId>
<artifactId>javafx</artifactId>
<version>2.0</version>
<scope>compile</scope>
</dependency>
对于当前的Java 7和捆绑的Java FX 2.0,最好的答案是:
<dependency>
<groupId>com.oracle</groupId>
<artifactId>javafx</artifactId>
<version>2</version>
<systemPath>${java.home}/lib/jfxrt.jar</systemPath>
<scope>system</scope>
</dependency>
并将其添加到NetBeans中使用的Maven配置文件的"Run Project"操作中:
exec.classpathScope=compile
你也可以在"Debug project", "Profile project", "Run file via main()", "Debug file via main()"one_answers"Profile file via main()"操作中使用
目前,这似乎是一个有效的解决方案。
首先,安装jfxrt.jar:mvn install:install-file -Dfile=jfxrt.jar -DgroupId=com.oracle -DartifactId=javafx-runtime -Dpackaging=jar -Dversion=2.0
然后从你下载的JavaFX运行时复制bin文件夹到你本地的Maven repo (home/.m2/repository/com/oracle/javafx-runtime/)