Entrada destacada
Excepciones al utilizar HTMLEditor de JavaFx
- Obtener enlace
- X
- Correo electrónico
- Otras aplicaciones
Hace unos días estaba intentado utilizar el editor HTML que proporciona JavaFX en un proyecto el cual lo estoy desarrollando en intellij idea, sin embargo, cuando intente correr el código me lanzo algunas excepciones entre ella una classNotFoundException en donde me indicaba que la clase HTMLEditor no se encontraba, para solucionar esa excepción tuve que colocar en el archivo POM la dependencia de JavaFx Web.
Luego al intentar correr nuevamente el código me lanzo una nueva excepción: class
javafx.scene.web.HTMLEditor (in unnamed module @0x342c9752) cannot access class
com.sun.javafx.scene.control.ControlHelper (in module javafx.controls) because
module javafx.controls does not export com.sun.javafx.scene.control to unnamed
module @0x342c9752. Busque en san Google, pero la mayor parte de las
soluciones que brindaban era incluir en la VM Options el módulo de JavaFx, pero
esta solución es correcta tomando en consideración que el proyecto en el que se
está trabajando no tiene las dependencias en el class path, en mi caso no
aplicaba ya que mi proyecto utiliza Maven. Al final la solución fue realmente
sencilla.
Para poder solucionar la excepción tuve que incluir en mi module-info la
siguiente línea
requires javafx.web; y con esto se solucionó la excepción que
lanzaba a la hora de correr el código.
En mi archivo POM las dependencias necesarias para trabajar
con los controles y web de JavaFX quedó de la siguiente forma:
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>18.0.1</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>18.0.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.openjfx/javafx-web -->
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-web</artifactId>
<version>18.0.1</version>
</dependency>
Y el archivo module-info.java quedó con las siguientes líneas:
module com.test {
requires javafx.controls;
requires javafx.fxml;
requires javafx.web;
opens com.test.views to javafx.fxml;
opens com.test.controllers;
exports com.test;
exports com.test.controllers;
}
Comentarios