相关疑难解决方法(0)

是否有可能在Java JRE 1.6 SE中替换JAXB实现的版本?

我有这个测试课

import javax.xml.bind.annotation.XmlElement;

class CompileTest {

   void foo( @XmlElement String in ) {
   }

}
Run Code Online (Sandbox Code Playgroud)

我的java版本是

$ java -version
java version "1.6.0_23"
Java(TM) SE Runtime Environment (build 1.6.0_23-b05)
Java HotSpot(TM) Client VM (build 19.0-b09, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)

当我尝试编写那个我正在学习的课程时

javac CompileTest.java
CompileTest.java:5: annotation type not applicable to this kind of declaration
   void foo( @XmlElement String in ) {
             ^
1 error
Run Code Online (Sandbox Code Playgroud)

这对Java 6有效.当我尝试将更新的JAXB库添加到类路径时,它没有帮助.有办法解决这个问题吗?

javac -cp jaxb-api-2.2.4.jar CompileTest.java
Run Code Online (Sandbox Code Playgroud)

java jaxb

10
推荐指数
1
解决办法
7479
查看次数

如何让Ant更喜欢来自链接JAR而不是JDK类的类?

我正在尝试构建dom4j JAR,其中包含一个xml-apis JAR,其中包含的DOM API比最近的JDK附带的更早.

但是,即使在构建文件中源和目标编译器属性设置为1.3,即使构建路径中包含xml-apis JAR,Ant仍会尝试将dom4j编译为另一个更新的w3c API(我猜一个来自JDK安装).

这是相关的Ant代码:

<path id="compile.classpath">
    <fileset dir="./lib/endorsed">
        <include name="*.jar" />
    </fileset>
    <fileset dir="./lib">
        <include name="*.jar" />
    </fileset>
</path>

  <target name="compile" depends="prepare-src">
    <javac srcdir="${build.src}"
           destdir="${build.dest}"
           debug="${debug}"
           optimize="${optimize}"
           target="1.3"
           source="1.3"
           deprecation="${deprecation}"
           classpathref="compile.classpath">
    </javac>
  </target>
Run Code Online (Sandbox Code Playgroud)

应该使用的JAR是在lib/endorsed中,但在编译期间不使用它.

怎么会?

java ant

4
推荐指数
1
解决办法
4477
查看次数

标签 统计

java ×2

ant ×1

jaxb ×1