【发布时间】:2022-01-17 21:16:06
【问题描述】:
我正在尝试使用JAXB 将 XML 数据反序列化为 Java 内容树,并在 XML 数据未编组时对其进行验证:
try {
JAXBContext context = JAXBContext.newInstance("com.acme.foo");
Unmarshaller unmarshaller = context.createUnmarshaller();
unmarshaller.setSchema(schema);
FooObject fooObj = (FooObject) unmarshaller.unmarshal(new File("foo.xml"));
} catch (UnmarshalException ex) {
ex.printStackTrace();
} catch (JAXBException ex) {
ex.printStackTrace();
}
当我使用 Java 8 构建项目时很好,但使用 Java 11 构建项目失败并出现编译错误:
package javax.xml.bind does not exist
我该如何解决这个问题?
【问题讨论】:
-
@Wolfgang,如果我们对软件进化有这样的看法,我们会留在 Java 1.1 时代。我不能完全同意您在 wiki 中表达的观点。是的,他们违背了向后兼容的承诺,但只是为了与时俱进。
-
在 poms 但 java 中使用 maven.compiler.source=1.8 或 version.java.source=1.8 运行 maven 构建时出现错误“javax.xml.bind 包不存在” 11套在控制台上。通过将 java_home 本地环境变量设置为 Java 8 SDK 来修复:“set java_home=path_to_java_8”
标签: java jakarta-ee jaxb java-11