Cómo resolver error java.lang.module.FindException: Module javafx.controls not foundCómo resolver error

El error «java.lang.module.FindException: Module javafx.controls not found» generalmente ocurre cuando el sistema de módulos de Java no puede encontrar el módulo javafx.controls que estás tratando de usar en tu aplicación JavaFX. Este problema es común en aplicaciones que usan JavaFX con JDK 11 o superior, ya que JavaFX no está incluido en el JDK a partir de Java 11. Aquí te explico cómo resolver este problema paso a paso.

Paso 1: Verificar Dependencias en pom.xml

Asegúrate de que tu archivo pom.xml tiene las dependencias correctas para JavaFX. Debes incluir los módulos de JavaFX que estás utilizando en tu aplicación. Aquí tienes un ejemplo de cómo se deben configurar las dependencias para JavaFX usando Maven:

<dependencies>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-controls</artifactId>
        <version>15</version>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-fxml</artifactId>
        <version>15</version>
    </dependency>
    <!-- Añade más módulos de JavaFX según sea necesario -->
</dependencies>

Asegúrate de que la versión de JavaFX en las dependencias coincida con la versión del JDK que estás utilizando y sea compatible.

Paso 2: Configurar el Path del Módulo en la VM

Necesitas especificar la ruta del módulo de JavaFX en los argumentos de la VM al ejecutar tu aplicación. Esto le indica a la JVM dónde buscar los módulos necesarios.

  1. Configurar Argumentos de la VM:
  • Si estás ejecutando tu aplicación desde una IDE como Eclipse, ve a la configuración de la ejecución de tu aplicación.
  • Abre las configuraciones de ejecución (Run Configurations).
  • Busca la sección de argumentos VM (VM Arguments) y añade lo siguiente: --module-path /path/to/javafx-sdk/lib --add-modules javafx.controls,javafx.fxml Aquí, debes reemplazar /path/to/javafx-sdk/lib con la ruta real donde están ubicadas las librerías de JavaFX. Si estás usando Maven, esta ruta podría ser el directorio en tu repositorio local donde Maven ha descargado las librerías de JavaFX, como ~/.m2/repository/org/openjfx/javafx-controls/15/javafx-controls-15.jar.
  1. Configurar Ruta en MAVEN_OPTS:
  • Otra opción es configurar los argumentos del módulo globalmente en las variables de entorno de tu sistema. Puedes añadir lo siguiente a la variable MAVEN_OPTS: -Djdk.module.path=/path/to/javafx-sdk/lib

Paso 3: Asegurarte de Usar JDK Adecuado

JavaFX requiere JDK 11 o superior desde que fue separado del JDK estándar. Asegúrate de que estás utilizando una versión adecuada del JDK para la versión de JavaFX que has especificado.

Paso 4: Limpieza y Reconstrucción

Después de hacer estos cambios, es una buena práctica limpiar y reconstruir tu proyecto:

  • En Eclipse, puedes hacerlo desde Project -> Clean... y luego selecciona Clean all projects.

Paso 5: Verifica y Ejecuta

Finalmente, verifica todos los cambios y ejecuta tu aplicación. Si todos los pasos anteriores están correctos, tu aplicación debería ejecutarse sin mostrar el error de módulo no encontrado.

Si continúas teniendo problemas, verifica que los pasos anteriores se hayan realizado correctamente, y que no haya errores de ruta o configuración en los argumentos de la VM o en el pom.xml.

silver imac apple magic keyboard and magic mouse on wooden table
Photo by Pixabay on Pexels.com

Deja un comentario

Información básica sobre protección de datos Ver más

  • Responsable: Tomas Gonzalez.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

error: Content is protected !!

Descubre más desde InfoGonzalez - Blog de formador e informático

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo

Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad
Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.