Я пытаюсь очень просто использовать JavaFX, используя простой набор строк кода, который я получил с другой страницы stackoverflow (здесь). Но проблема явно не в этом коде, а в чем-то более фундаментальном в процессе сборки и запуска.
Вот мой код:
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".
Любые идеи? Заранее благодарю вас!