gpt4 book ai didi

java - 使用ant build.xml编译时如何在没有JDK库的情况下使用外部库

转载 作者:行者123 更新时间:2023-12-01 14:08:16 25 4
gpt4 key购买 nike

我的程序之前使用的是JDK 1.4。现在我想用1.6来编译它。它已成功针对 1.4 进行编译,但是当我将 JDK 更改为 1.6 时,它给出了以下编译错误。

    [javac] symbol  : constructor StartTagInfo(java.lang.String,java.lang.String,java.lang.String,org.xml.sax.helpers.At
tributesImpl,com.abc.jaxb.ssdclm.impl.runtime.MSVValidator)
[javac] location: class com.sun.msv.util.StartTagInfo
[javac] StartTagInfo sti = new StartTagInfo(

但是我的类路径中有 jaxb-libs-jwsdp-1.6 jar,其中包含带有上述构造函数的 StartTagInfo 类。如果有人对这个问题有想法,请给我建议。谢谢。

最佳答案

我怀疑由于JDK版本的变化,可能会有其中一个支持lib jar的版本变得不兼容。最糟糕的是它可能是 native lib jar。

我不提供当前问题的解决方案。但提供另一种方法。如果您无法使用这种方法更改代码,请告诉我;我们将尝试查找现有 java 升级的问题。

使用 Java 1.6,不再需要 JWSDP 包。 Java 1.6版本自带JAXB版本,可以直接使用。

Java 1.6版本带有“xjc”编译器,可以从xml生成java对象。

Usage: xjc [-options ...]

下面的代码片段展示了如何在 ant 脚本中使用 1.6 的 xjc 编译器来生成 XML 文件形式的 java 对象。

下面的ant目标将编译xsd文件test1.xsd和test2.xsd,并将从xsd创建java对象到文件夹output/java

<target name=”xsd2java” description=”Generate java model from XSD xml schema using XJC compiler.”>
<echo message=”Generating java files from XSD using XJC compiler…” />
<mkdir dir=”output/java”/>
<exec executable=”xjc”>
<arg value=”-d”/>
<arg value=”output/java”/>
<arg value=”test1.xsd”/>
<arg value=”test2.xsd”/>
</exec>
</target>

下面的代码片段展示了如何从 dtd 文件编译 Java 对象。

<div><macrodef name=”dtd2java”>
<attribute name=”dtdDir”/>
<attribute name=”dtdFile”/>
<attribute name=”javaPackage”/>
<attribute name=”javaDir”/>
<sequential>
<mkdir dir=”output/java/@{javaDir}”/>
<exec executable=”xjc”>
<arg value=”-d”/>
<arg value=”${output.dir}/java”/>
<arg value=”-p”/>
<arg value=”@{javaPackage}”/>
<arg value=”${output.dir}/java/@{javaDir}”/>
<arg value=”-extension”/><arg value=”-dtd”/>
<arg value=”@{dtdDir}/@{dtdFile}”/>
</exec>
</sequential>
</macrodef>
<target name=”dtd2java” description=”Generate java model from DTD using XJC2 compiler.” >
<echo message=”Generating java files from DTD using XJC2 compiler…”/>
<dtd2java dtdDir=”test/dtd” dtdFile=”test1.dtd” javaPackage=”com.test1.dtd” javaDir=”com/test1/dtd”/>
<dtd2java dtdDir=”test/dtd” dtdFile=”test2.dtd” javaPackage=”com.test2.dtd” javaDir=”com/test2/dtd”/>
</target>
</div>

关于java - 使用ant build.xml编译时如何在没有JDK库的情况下使用外部库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18735708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com