Estoy intentando hacer un uso muy simple de JavaFX usando un conjunto simple de líneas de código que obtuve de otra página de stackoverflow (here). Pero, el problema no es claramente con ese código, sino con algo más fundamental en el proceso de compilación y ejecución.Compilación y ejecución con JavaFX 2.1
Aquí está mi código:
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
.
.
.
Media medMsg = new Media("msg.mp3");
MediaPlayer medplMsg = new MediaPlayer(medMsg);
medplMsg.play();
Al principio no pude conseguir que esto compilar en absoluto. Eventualmente me di cuenta de que necesitaba poner -classpath c: \ Program Files \ Oracle \ JavaFX 2.1 SDK \ lib \ rt \ jfxrt.jar en mi línea de comando javac. (Un complejo de preguntas obvio aquí es: ¿Por qué no está documentado en ningún lugar obvio (1) que esto es necesario y (2) cómo averiguar exactamente cuál es la ruta de la instalación JavaFX ?!)
Pero, cuando ejecuto el código, obtengo:
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
¿Qué significa esto? Parece que no sabe, en tiempo de ejecución, cómo encontrar la clase javafx.scene.media.Media. Pero mi variable% CLASSPATH% definitivamente tiene "c: \ Archivos de programa \ Oracle \ JavaFX 2.1 SDK \ lib \ rt \ jfxrt.jar" en ella.
¿Alguna idea? ¡Gracias de antemano!
yo creo que hay algo mal con su configuración. No debería ser necesario poner ningún jarrón JavaFX manualmente en el classpath. ¿Cómo construyes y ejecutas tu aplicación JavaFX? Con los scripts de hormiga proporcionados por NetBeans? – Puce
No, no estoy usando NetBeans pero trabajando directamente desde la consola. Mi línea javac es: 'javac-classpath' c: \ Archivos de programa \ Oracle \ JavaFX 2.1 SDK \ rt \ lib \ jfxrt.jar "; .. \ bin -d .. \ bin .. \ src \ progtext.java ' –