我愿意第一次尝试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 工具的。我是不是画错了?我将如何正确导入这些类?
编辑
现在我可以使用我在此处找到的内容来编译项目。建议添加:
<dependency>
<groupId>com.oracle</groupId>
<artifactId>javafx</artifactId>
<version>2.2</version>
<scope>system</scope>
<systemPath>${java.home}/lib/jfxrt.jar</systemPath>
</dependency>
这解决了我的构建问题,但我无法运行程序,我正在尝试运行这个简单的示例,但出现此错误:
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。