Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.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_Jaxb - Fatal编程技术网

Java jaxb错误

Java jaxb错误,java,jaxb,Java,Jaxb,我正在使用jaxb(xjc版本“2.0-b26-ea3”) 我已经能够使用xjc为模式(.xsd)生成类,但是当我尝试编译生成的类时,会出现错误,如。。。包javax.xml.bind.annotation“不存在” 我正在使用jdk1.5.0_14。我正在尝试通过命令提示符运行 任何帮助都将不胜感激 提前感谢!!该软件包是jaxb 2.0 api的一部分。您可以下载它。借助于该软件包是jaxb 2.0 api的一部分,这些问题可以很容易地自我回答。您可以下载它。借助于XJC生成的Java源文件

我正在使用jaxb(xjc版本“2.0-b26-ea3”)

我已经能够使用xjc为模式(.xsd)生成类,但是当我尝试编译生成的类时,会出现错误,如。。。包javax.xml.bind.annotation“不存在”

我正在使用jdk1.5.0_14。我正在尝试通过命令提示符运行

任何帮助都将不胜感激


提前感谢!!

该软件包是jaxb 2.0 api的一部分。您可以下载它。借助于该软件包是jaxb 2.0 api的一部分,这些问题可以很容易地自我回答。您可以下载它。借助于

XJC生成的Java源文件使用注释,这些问题可以很容易地自我回答为了编译它们,这些注释类型必须位于类路径上

要使用JAXB(用于对XML文档进行编组和解编组),您需要以下内容:

  • JAXB API定义
  • JAXB实现
  • 实现所依赖的任何库
实现与API是分开的,可以互换。它将通过Java服务提供程序机制定位。我在这里不详细介绍,但假设在类路径上有一个带有实现的jar就足够了。通常只调用JAXB API类。例如,
JAXBContext、 newInstance(“my.sample.pack”);

实际实现位于运行时并通过API调用加载。这意味着为了编译JAXB代码,一个带有API的jar就足够了。只有在运行时才需要实现及其依赖项

现在对于JDK 1.6.x,您不需要在类路径上包含任何附加内容。从Java SE 6开始,JAXB API包含在标准Java SE API中。Java运行时环境还包括该API的实现。这是上提供的参考实现

对于JDK 1.5.x,情况有点不同。JAXB API还没有作为标准Java API包含。因此,您需要手动提供它。至少您需要API;您将要使用的实现是可以自由选择的,尽管除了我头脑中的参考实现之外,我不知道任何其他实现。可能是最好的一个开始。 点击“立即下载”“上面链接的JAXB站点上的按钮。您将看到一个下载jar文件的链接。在文件系统中双击它或通过命令行运行它来获取并打开它。这将把一些内容提取到与jar位于同一位置的文件夹中。您将看到许多文件夹。bin文件夹包含xjc和schemagen的可运行文件。还有文档和示例文件夹。lib文件夹是我们感兴趣的。下面是一个概要:

  • jaxb-api.jar:这是jaxb api;在编译生成的代码时,您将需要它
  • jaxb-impl.jar:参考实现;编译时不需要,但在运行时需要
  • jaxb-xjc.jar:用于以编程方式或在Ant中调用xjc
  • jaxb1-impl.jar:JAXB1API的参考实现;我想您会坚持使用JAXB2,所以请忽略它
  • activation.jar:一个依赖项,编译时不需要,但在运行时可能需要
  • jsr173_1.0_api.jar:这实际上是用于XML的Java流式api(StAX);它由JAXB参考实现使用
最后一个在实现方面与JAXB类似。它是一个具有可互换实现的API。与JAXB一样,它在Java5中默认不可用,但包含在Java6API中。您可能也需要在Java5中实现这一点。我让你去寻找和使用它;接下来的步骤将与我为JAXB描述的内容紧密结合

所以,用一个简明的概述来总结这一切。。。如果您可以使用Java6,那么几乎所有依赖项都是现成的,您不需要在类路径上添加任何额外的内容来编译JAXB相关代码并运行它。对于Java5,您至少需要JAXB API进行编译,并需要API加上运行时的实现。实现本身可能有一些依赖项,因此如果仍然出现ClassNotFound错误,请尝试找出缺少的类是哪个项目的一部分

Pangea建议的jarfinder站点对此非常有用。但不要跳过检查实际项目站点的步骤,以确保获得所有依赖项、最新版本,并查看许可条款


祝你好运

XJC生成的Java源文件使用来自JAXB API的注释。为了编译它们,这些注释类型必须位于类路径上

要使用JAXB(用于对XML文档进行编组和解编组),您需要以下内容:

  • JAXB API定义
  • JAXB实现
  • 实现所依赖的任何库
实现与API是分开的,可以互换。它将通过Java服务提供者机制定位。我在这里不详细介绍,但假设在类路径上有一个带有实现的jar就足够了。通常只调用JAXB API类。例如,
JAXBContext.newInstance(“my.sample.pack”)

实际实现位于运行时,并通过API调用加载。这意味着为了编译JAXB代码,一个带有API的jar就足够了。只有在运行时才需要实现及其依赖项

现在对于JDK1.6.x,您不需要在类路径中包含任何附加内容。从JavaSE6开始,JAXBAPI包含在标准JavaSEAPI中。Java运行时环境还包括该API的实现。这是上提供的参考实现

对于JDK1.5.x来说,情况是b