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

问题描述:

我想根据xs模式文件验证xml文件。现在,我将xml文件作为命令行arg提供。并需要将我的模式文件保存在我的类路径中。可以Xerces Java Parser从ClassPath加载资源并使用Jar可执行文件运行它?

为此,我已经使用的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文件。

file:/ C:/ MY_JAR! /PACKAGE/SCHEMA_FILE.xsd

谁能告诉我这是为什么不从可执行的JAR文件,并为其解决工作的原因吗?

让我知道是否需要更多信息。

感谢

这是因为this.getClass().getResource(SCHEMA_NAME)的URL现在像jar:file:/C:/MY_JAR!/PACKAGE/SCHEMA_FILE.xsd。看看是否只用this.getClass().getResource(SCHEMA_NAME).toString()就可以。

+0

它也转换为字符串后不工作。我正在运行“java -jar my_jar.jar”,它给出了相同的错误文件:/ C:/ MY_JAR!/PACKAGE/SCHEMA_FILE.xsd – user1584499 2011-01-21 07:13:51