我正在嘗試使用一組簡單的JavaFX使用一組簡單的代碼行,這是我從另一個計算器頁面(here)獲得的代碼行。但是,問題顯然不在於該代碼,而是在構建和運行過程中更重要。使用JavaFX 2.1編譯並運行
這裏是我的代碼:
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)是否需要以及(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」。
任何想法?先謝謝你!
我覺得你有什麼不對您的設置。不需要手動將任何JavaFX jar放在類路徑中。你如何構建和運行你的JavaFX應用程序?使用NetBeans提供的ant腳本? – Puce
不,我沒有使用NetBeans,而是直接從控制檯工作。我的javac行是:'javac -classpath'c:\ Program Files \ Oracle \ JavaFX 2.1 SDK \ rt \ lib \ jfxrt.jar「; .. \ bin -d .. \ bin .. \ src \ progtext.java' –