5

尝试使用 JAXB 从 XSD 模式生成 Java 类时出现以下错误。我正在指定一个我希望它们所在的目录,但是当我尝试运行该命令时出现以下错误。

命令:

java -jar /home/Alison/Programs/jaxb-ri-2.2.6/lib/jaxb-xjc.jar xmlSchema.xjb -d com.q1labs.qa.xmlgenerator.model.xmlclasses xmlSchema.xsd

错误:

懦弱地拒绝写入一个不存在的目录“com.q1labs.qa.xmlgenerator.model.xmlclasses”

我找到了以下补丁http://jira.codehaus.org/browse/MJAXB-2但从评论看来它不再适用于当前版本。

如果目录不存在,有什么方法可以指定创建目录吗?

4

4 回答 4

4

如果目录不存在,有什么方法可以指定创建目录吗?

简单的答案是在运行应用程序之前创建目录。一般来说,如果应用程序还没有创建目录的能力,就无法让应用程序为您创建目录。

FWIW,应用程序创建“丢失”目录通常是一个坏主意……除非用户已表明这是必需的;例如通过命令行选项。原因是“丢失”目录通常是由于用户输入错误的路径名,或者由于当前目录与用户认为的不同。换句话说,用户通常不希望应用程序创建“缺失”的目录。

于 2012-09-01T13:34:34.773 回答
4

使用以下命令设法让它按照我想要的方式工作:

java -jar /home/Alison/Programs/jaxb-ri-2.2.6/lib/jaxb-xjc.jar -b xmlSchema.xjb -d src -p com.q1labs.qa.xmlgenerator.model.xmlclasses xmlSchema.xsd

于 2012-09-01T14:13:02.900 回答
0

当我尝试在运行时生成 java 包和文件时,我也遇到了这个问题。当我已经有一个在运行时创建的指定 java 包并且我再次尝试创建相同的 jaxb 类时出现问题(第一次创建它时,有一些功能错误,之后文件没有被删除)它说“懦弱地拒绝写入一个不存在的目录“员工”。对我来说,当我手动删除已经创建的包时,问题得到了解决,之后它工作正常。

于 2016-07-27T12:31:06.783 回答
0

我也遇到了这个问题,但使用以下方式解决了它。

xjc -d src/main/java -p com.sample.utils.jaxbJavaClass /Users/XXXX/Documents/Project_workspace/src/test/resources/xsd_files/out.xsd

在上面的命令-d中表示源目录,-p即您希望生成 java 类的包。然后使用您的项目主管路径和“xsd”文件路径。上面的命令工作正常,将生成 java 类。

于 2018-09-25T12:21:17.357 回答