什么JAR版本有XMLConstants.ACCESS_EXTERNAL_DTD,它的价值是多少?

时间:2016-07-13 18:04:08

标签: java xml

我继承了一些代码。我在Java JRE 7 rt.jar中缺少XMLConstants.ACCESS_EXTERNAL_DTD,因此代码无法编译。

这是什么JAR,它的价值是什么?

2 个答案:

答案 0 :(得分:1)

我安装了java-1.7.0-openjdk-1.7.0.101-2.6.6.1.0.1.el7_2.x86_64。使用jd-gui,我可以确认你要查找的静态变量是否存在并且在rt.jar中。作为参考,我机器上jar的位置是java-1.7.0-openjdk-1.7.0.101-2.6.6.1.0.1.el7_2.x86_64 / jre / lib / rt.jar。

enter image description here

Here是jax api的jar,它还包含所需的类:

<dependency>
    <groupId>javax.xml</groupId>
    <artifactId>jaxp-api</artifactId>
    <version>1.4.2</version>
</dependency>

至于它的价值,这里是文档states

  

值:以逗号分隔的协议列表。协议是URI的方案部分,或者在JAR协议的情况下,&#34; jar&#34;加上由冒号分隔的方案部分。方案定义为:

     

scheme = alpha *(alpha | digit |&#34; +&#34; |&#34; - &#34; |&#34;。&#34;)    其中alpha = a-z和A-Z。    和JAR协议:    罐子[:方案]    协议包括关键字&#34; jar&#34;不区分大小写。将忽略值中Character.isSpaceChar(char)定义的任何空格。协议的示例是file,http,jar:file。

对我来说,运行这个程序:

package sample;
import javax.xml.XMLConstants;

public class Sample {
    public static void main(String[] args) {
        System.out.println("### " + XMLConstants.ACCESS_EXTERNAL_DTD);
    }  
} 

打印出来:

### http://javax.xml.XMLConstants/property/accessExternalDTD

答案 1 :(得分:0)

我有同样的问题。原来是因为XMLConstants类是从项目依赖的旧Eclipse平台中的JAR中提取的(javax.xml_1.3.4.v201005080400.jar)。修改设置,使Java库具有优先权。