我继承了一些代码。我在Java JRE 7 rt.jar中缺少XMLConstants.ACCESS_EXTERNAL_DTD
,因此代码无法编译。
这是什么JAR,它的价值是什么?
答案 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。
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库具有优先权。