我正在尝试使用从另一个stackoverflow页面(here)获得的一组简单的代码行来非常简单地使用JavaFX。但是,问题显然不在于该代码,而在于构建和运行过程中更基本的东西。
这是我的代码:
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
.
.
.
Media medMsg = new Media("msg.mp3");
MediaPlayer medplMsg = new MediaPlayer(medMsg);
medplMsg.play();
起初我根本无法编译它。最终我发现我需要将 -classpath c:\Program Files\Oracle\JavaFX 2.1 SDK\lib\rt\jfxrt.jar 放在我的 javac 命令行上。(这里一个明显的复杂问题是:为什么没有在任何明显的地方记录它(1)这是需要的,(2)如何准确地确定 JavaFX 安装的路径是什么?!)
但是,当我运行代码时,我得到:
Exception in thread "main" java.lang.NoClassDefFoundError: javafx/scene/media/Media
at progtest.main(progtest.java:120)
Caused by: java.lang.ClassNotFoundException: javafx.scene.media.Media
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more
这是什么意思?看起来它在运行时不知道如何找到类 javafx.scene.media.Media。但是,我的 %CLASSPATH% 变量中肯定有“c:\Program Files\Oracle\JavaFX 2.1 SDK\lib\rt\jfxrt.jar”。
有任何想法吗?先感谢您!