Próbuję bardzo proste użycie JavaFX za pomocą prostego zestawu linii kodu, które dostałem od innej strony stackoverflow (here). Ale problem nie jest wyraźnie związany z tym kodem, ale z czymś bardziej podstawowym w procesie budowania i uruchamiania.Kompilowanie i uruchamianie z JavaFX 2.1
Oto mój kod:
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
.
.
.
Media medMsg = new Media("msg.mp3");
MediaPlayer medplMsg = new MediaPlayer(medMsg);
medplMsg.play();
Na początku nie mogłem tego skompilować w ogóle. W końcu zorientowałem się, że muszę umieścić w wierszu poleceń javac -classpath c: \ Program Files \ Oracle \ JavaFX 2.1 SDK \ lib \ rt \ jfxrt.jar. (Jednym z oczywistych pytań jest tutaj: Dlaczego nie jest to udokumentowane w żadnym oczywistym miejscu (1), że jest to potrzebne i (2) jak dokładnie obliczyć ścieżkę do instalacji JavaFX ?!)
Ale po uruchomieniu kodu otrzymuję:
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
Co to oznacza? Wygląda na to, że w czasie wykonywania nie wie, jak znaleźć klasę javafx.scene.media.Media. Jednak moja zmienna% CLASSPATH% ma zdecydowanie "c: \ Program Files \ Oracle \ JavaFX 2.1 SDK \ lib \ rt \ jfxrt.jar".
Wszelkie pomysły? Z góry dziękuję!
Chyba masz coś nie tak z konfiguracją. Nie powinno być konieczne ręczne umieszczanie słoików JavaFX w ścieżce klas. W jaki sposób budujesz i uruchamiasz aplikację JavaFX? Ze skryptami ant dostarczonymi przez NetBeans? – Puce
Nie, nie używam NetBeans, ale pracuję bezpośrednio z konsoli. Moja linia javac to: "javac -classpath" c: \ Program Files \ Oracle \ JavaFX 2.1 SDK \ rt \ lib \ jfxrt.jar "; .. \ bin -d .. \ bin .. \ src \ progtext.java" –