El error «java.lang.module.FindException: Module javafx.controls not found» que estás experimentando indica que el entorno de ejecución de Java no puede encontrar el módulo javafx.controls
necesario para ejecutar tu aplicación JavaFX. Este problema suele surgir cuando las rutas de acceso al módulo JavaFX no están correctamente configuradas en las opciones de VM (Virtual Machine) de tu proyecto Java.
A continuación, te guiaré paso a paso para resolver este error en un entorno donde estás utilizando Java y JavaFX con Eclipse y Maven:
Paso 1: Verificar la Configuración de Dependencias en pom.xml
Antes de todo, asegúrate de que tu archivo pom.xml
tenga las dependencias de JavaFX correctamente especificadas. Aquí tienes un ejemplo de cómo podrían configurarse estas dependencias para JavaFX 13:
<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>13</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>13</version>
</dependency>
<!-- Agrega más módulos según necesites, como javafx.media, javafx.graphics, etc. -->
</dependencies>
Paso 2: Configurar el Path del Módulo JavaFX
Necesitas asegurarte de que estás especificando correctamente la ruta del módulo JavaFX en las configuraciones de ejecución de tu proyecto. Sigue estos pasos:
- Abre Configuraciones de Ejecución: Haz clic derecho en tu proyecto en Eclipse, navega a
Run As
y luego aRun Configurations...
. - Modificar Argumentos VM:
- En la ventana de configuraciones, selecciona tu configuración de ejecución Java Application.
- Ve a la pestaña
Arguments
y localiza el campoVM Arguments
. - Añade los siguientes argumentos (ajustando la ruta según corresponda si tienes una instalación local de JavaFX o estás utilizando Maven):
--module-path "path/to/javafx-sdk/lib" --add-modules javafx.controls,javafx.fxml
Si estás utilizando Maven y los JAR de JavaFX están en tu repositorio local de Maven, la ruta podría ser algo como:--module-path "${MAVEN_REPO}/org/openjfx/javafx-controls/13/javafx-controls-13.jar" --add-modules javafx.controls,javafx.fxml
Reemplaza${MAVEN_REPO}
con la ruta real al repositorio local de Maven, que usualmente está en~/.m2/repository
en sistemas UNIX/Linux oC:\Users\<tu_usuario>\.m2\repository
en Windows.
- Aplica y Ejecuta:
- Haz clic en «Apply» y luego en «Run» para ejecutar tu aplicación con la nueva configuración.
Paso 3: Verificar la Configuración del JDK
Asegúrate de que estás utilizando un JDK compatible con la versión de JavaFX que estás utilizando. JavaFX 13, por ejemplo, requiere al menos Java 11. Si tienes múltiples JDK instalados, configura tu proyecto Eclipse para usar uno que sea compatible:
- Configurar el JDK del Proyecto:
- Haz clic derecho en tu proyecto en Eclipse.
- Ve a
Build Path
>Configure Build Path
. - En la pestaña
Libraries
, asegúrate de que el JDK seleccionado sea el adecuado y esté bien configurado.
Si sigues estos pasos correctamente y aún encuentras problemas, revisa las versiones de las dependencias y asegúrate de que todas ellas sean compatibles entre sí y con tu versión de JDK. Esto debería ayudarte a resolver el problema de que los módulos de JavaFX no se encuentren durante la inicialización de la aplicación.
Gracias por visitar mi blog de informática, mi nombre es Tomás y soy formador y desarrollador web. Si quiere usted dejarme alguna sugerencia, ayuda o quiere un servicio de formación estoy escuchando ofertas en tomas.gonzalez@infogonzalez.com, en Facebook a https://www.facebook.com/Infogonzalez estoy deseando escucharle. Su duda o sugerencia NO molesta.