Avatar ·

Cómo solucionar java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException en Java 9, 10, 11?

¡Hola a todos! Soy un desarrollador Java principiante, escribo una aplicación simple para trabajar con XML. Uso JAXB para convertir objetos a XML y viceversa. Antes todo funcionaba perfectamente en Java 8, pero después de migrar a Java 11, al ejecutar obtengo el error:

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException

Aquí está mi código:

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;

public class XmlConverter {
    public static void main(String[] args) {
        try {
            JAXBContext context = JAXBContext.newInstance(User.class);
            Marshaller marshaller = context.createMarshaller();
            marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
            
            User user = new User("Iván", 25);
            marshaller.marshal(user, System.out);
        } catch (JAXBException e) {
            e.printStackTrace();
        }