Xerces Java Parser可以从ClassPath加载资源并使用Jar可执行文件运行它吗?

时间:2011-01-20 14:15:03

标签: java xsd xerces domparser

我想针对xs架构文件验证xml文件。现在,我将xml文件作为命令行arg提供。并且需要将我的模式文件保存在我的类路径中。

为此,我使用了Xerces(2_11_0)解析器来实现java

我已将模式文件保存在包中,并在我的类路径中添加了此文件夹。

String SCHEMA = this.getClass().getResource(SCHEMA_NAME).getFile();
parser.setProperty("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation", SCHEMA);

当我在eclipse中运行代码时,它就像魅力一样,但当我将项目导出为可执行jar时会出现问题。

我尝试运行jar,但无法找到SCHEMA文件。

  

文件:/ C:/的 MY_JAR /PACKAGE/SCHEMA_FILE.xsd

任何人都可以让我知道为什么这不能用于可执行jar及其解决方案吗?

如果需要更多信息,请与我们联系。

由于

1 个答案:

答案 0 :(得分:0)

这是因为this.getClass().getResource(SCHEMA_NAME)的网址现在类似于jar:file:/C:/MY_JAR!/PACKAGE/SCHEMA_FILE.xsd。看看只使用this.getClass().getResource(SCHEMA_NAME).toString()是否有效。