Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 科沃迪拒绝写入一个不存在的目录——JAXB_Java_Xml_Linux_Xsd_Jaxb - Fatal编程技术网

Java 科沃迪拒绝写入一个不存在的目录——JAXB

Java 科沃迪拒绝写入一个不存在的目录——JAXB,java,xml,linux,xsd,jaxb,Java,Xml,Linux,Xsd,Jaxb,在尝试使用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.xmlSchema.xsd 错误: 科沃迪拒绝写入不存在的目录“com.q1labs.qa.xmlgenerator.model.x

在尝试使用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.xmlSchema.xsd

错误:

科沃迪拒绝写入不存在的目录“com.q1labs.qa.xmlgenerator.model.xmlclasses”

我发现了以下补丁,但从评论来看,它似乎不再适用于当前版本

如果目录不存在,我可以指定任何方法来创建它吗

如果目录不存在,我可以指定任何方法来创建它吗

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


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

使用以下命令使其按我希望的方式工作:


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.xmlSchema.xsd

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

我也遇到了这个问题,但用下面的方法解决了它

xjc-dsrc/main/java-pcom.sample.utils.jaxbJavaClass/Users/XXXX/Documents/Project_workspace/src/test/resources/xsd_files/out.xsd


在上面的命令中,
-d
表示源目录,
-p
表示要在其中生成java类的包。然后使用项目控制器路径和“xsd”文件路径。上述命令工作正常,将生成java类。

那么没有办法做到这一点吗?Windows命令行具有此功能,并且由于发布了修补程序,因此必须有一种方法。我希望在构建项目时将其创建为ANT任务的一部分。如果您输入的路径名的目录部分不正确,则Windows shell将自动创建一个目录,这是一个错误。。。当然,没有哪个UNIX/Linux shell会做这么愚蠢的事情。该补丁的目的是修改应用程序以添加一个不存在的功能。没有理由不能通过修改应用程序的最新版本来实现修补程序的功能。但关键是,如果一个未经修改的应用程序还没有创建目录的功能,那么它就无法创建目录。现在,事实证明,真正的问题是(显然)你把命令参数搞错了。。。这也是一个教训。