我愿意尝试使用JavaFX,第一次去Oracle的JavaFX网站上查找,发现JavaFX现在随JDK 7u25一起提供。我已经更新了我的Java版本,但我不确定我要找什么。每当我尝试导入和使用JavaFX类时,都会出现“无法找到符号”错误。我在%JAVA_HOME%/lib中找到了“javafx-mx.jar”、“javafx-doclet.jar”、“ant-javafx.jar”文件,但据我所知,这些文件是用于JRE而非JDK的。我真的不想依赖任何Eclipse插件。我使用Maven进行构建过程。我看到了几个JavaFX Maven插件,但它们似乎针对JavaFX工具。我是否理解有误?如何正确地导入这些类?
编辑
现在我能够编译项目,使用我在here中找到的方法。它建议添加:
这解决了我的构建问题,但我无法运行程序,我正在尝试运行这个简单的example,但我得到了这个错误:
编辑
现在我能够编译项目,使用我在here中找到的方法。它建议添加:
<dependency>
<groupId>com.oracle</groupId>
<artifactId>javafx</artifactId>
<version>2.2</version>
<scope>system</scope>
<systemPath>${java.home}/lib/jfxrt.jar</systemPath>
</dependency>
这解决了我的构建问题,但我无法运行程序,我正在尝试运行这个简单的example,但我得到了这个错误:
java.lang.NoClassDefFoundError: javafx/application/Application
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:792)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:285)
at java.lang.Thread.run(Thread.java:724)
Caused by: java.lang.ClassNotFoundException: javafx.application.Application
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
你有没有想过如何在运行时添加相同的库?我正在使用 maven-exec-plugin。