1

我想根据 xs 模式文件验证 xml 文件。现在,我提供 xml 文件作为命令行参数。并且需要将我的模式文件保存在我的类路径中。

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

我将模式文件保存在包中,并将这个文件夹添加到我的类路径中。

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 及其解决方案的原因?

如果需要更多信息,请告诉我。

谢谢

4

1 回答 1

0

那是因为this.getClass().getResource(SCHEMA_NAME)现在的 URL 类似于jar:file:/C:/MY_JAR!/PACKAGE/SCHEMA_FILE.xsd. 看看是否只是使用this.getClass().getResource(SCHEMA_NAME).toString()将工作。

于 2011-01-20T17:34:41.880 回答