Avatar ·

如何修复 Java 9、10、11 中的 java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException

大家好!我是一名初级 Java 开发者,正在编写一个简单的 XML 处理应用。我使用 JAXB 将对象转换为 XML 以及反向转换。以前在 Java 8 上一切正常,但升级到 Java 11 后,运行时出现以下错误:

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

这是我的代码:

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("伊万", 25);
            marshaller.marshal(user, System.out);
        } catch (JAXBException e) {
            e.printStackTrace();
        }