別の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();
最初は、これをまったくコンパイルできませんでした。最終的に、 javac コマンドラインに -classpath c:\Program Files\Oracle\JavaFX 2.1 SDK\lib\rt\jfxrt.jar を配置する必要があることがわかりました。(ここでの明らかな複雑な質問の 1 つは、(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" が含まれています。
何か案は?前もって感謝します!