我想针对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及其解决方案吗?
如果需要更多信息,请与我们联系。
由于
答案 0 :(得分:0)
这是因为this.getClass().getResource(SCHEMA_NAME)
的网址现在类似于jar:file:/C:/MY_JAR!/PACKAGE/SCHEMA_FILE.xsd
。看看只使用this.getClass().getResource(SCHEMA_NAME).toString()
是否有效。