作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 jar 中,我提供了我的 xsd 架构文件,即以下结构:
myjar
- myschema.xsd
当我解压缩文件时,我可以验证该文件是否存在于 JAR 中的根级别。
我通过以下方式将 xsd 模式添加到 SchemaFactory:
public void loadXSDSchema() throws InitializationException {
SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
try {
xsdSchema = sf.newSchema(new File(getClass().getClassLoader().getResource(XSD_SCHEMA_FILE).getFile()));
} catch (SAXException e) {
throw new InitializationException(ApiExceptionId.INIT_XSD_SCHEMA, e);
}
不幸的是,它在生成的 JAR 文件中不起作用 - 我收到 FileNotFoundException:
Caused by: java.io.FileNotFoundException: D:\dev\myjar.jar!\myschema.xsd (Die Syntax f▒r den Dateinamen, Verzeichnisnamen oder die Datentr▒gerbezeichnung ist falsch)
我以为我确实知道当它被打包在一个 jar 里时你需要将它作为一个资源来阅读,但现实告诉我我似乎做错了什么。
有什么关于我遗漏的提示吗?
最佳答案
您不能将其作为文件获取,因为它不是文件。它是您的 jar 文件中的一个条目。文件是操作系统对象,从操作系统的角度来看,jar 文件就是文件。虽然你可以通过 ClassLoader
得到一个 InputStream
并且你可以通过这个 InputStream 读取它的内容。
Schema xsdSchema = sf.newSchema( new StreamSource(ClassLoader.getSystemResourceAsStream("shema.xsd")));
关于java - 使用资源在 JAR 中加载 XSD 模式失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45728908/
我正在开发一个需要能够平均三个数字的 Facebook 应用程序。但是,它总是返回 0 作为答案。这是我的代码: $y = 100; $n = 250; $m = 300; $number = ($y
我只是无法弄清楚这一点,也找不到任何对我来说有意义的类似问题。我的问题:我从数据库中提取记录,并在我的网页上以每个面板 12 条的倍数显示它们。因此,我需要知道有多少个面板可以使用 JavaScrip
我是一名优秀的程序员,十分优秀!