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

发布于 2024-10-13 12:34:28 字数 619 浏览 6 评论 0原文

我想根据 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 不起作用的原因及其解决方案?

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

谢谢

I want to validate xml file against xs schema file. Now, I'm providing xml file as a command line arg. and need to keep my schema file inside my classpath.

For this I've used Xerces (2_11_0) parser for java

I've kept schema file inside package and added this folder inside my classpath.

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

When I run the code inside eclipse, it works like charm but the problem arises when I export my project as an executable jar.

I try running the jar and it is not able to find SCHEMA file.

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

Can anyone let me know the reason why this is not working from executable jar and the solution for it?

Let me know if more info is required.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

偏爱自由 2024-10-20 12:34:28

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

That's because the URL for this.getClass().getResource(SCHEMA_NAME) is now something like jar:file:/C:/MY_JAR!/PACKAGE/SCHEMA_FILE.xsd. See if just using this.getClass().getResource(SCHEMA_NAME).toString() will work.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文