【发布时间】:2014-03-20 16:43:14
【问题描述】:
Java API 文档中建议的通过运行“schenagen”生成模式的说明适用于 JDK7,但不适用于 JDK8。
这是文档页面: http://download.java.net/jdk8/docs/technotes/guides/xml/jaxb/index.html
以下是此页面中的行,其中包含指向说明的链接:
" 运行模式生成器 (schemagen): [command-line instructions, using the SchemaGen Ant task] "
Schema 生成器不起作用,因为一些类已从 JDK8 中删除: "java.lang.ClassNotFoundException: com.sun.mirror.apt.AnnotationProcessorFactory"
这里建议了另一种解决方案: Generating XSD schemas from JAXB types in Maven?
此解决方案也适用于 JDK7,但不适用于 JDK8;它最终会出现类似的错误:
“找不到类com/sun/tools/apt/Main.class”
根本原因可能是相同的:注释处理工具从JDK8中删除。 很久以前在 JEP 117 中计划了此更改: http://openjdk.java.net/jeps/117
我现在如何使用 JDK8 从 (JAXB) 注释的 Java 类生成 XML 模式文件?
【问题讨论】:
-
我在这个 OTN 线程上问同样的问题:community.oracle.com/thread/3536370
-
我正在研究 JAXB 的替代方案:springfuse.com/2009/10/01/…
-
我根据 Marco 的建议找到了解决方案。谢谢。