【发布时间】:2018-08-19 04:20:50
【问题描述】:
问题:
我们有一个码头网络应用程序,在应用程序代码中,我试图访问类路径中 jar 中的 zip。这是 libs 文件夹中的 jar:
/path/to/app/x.x.0-SNAPSHOT/apps/libs/my-model.jar
其中 my-model.jar 实际上只是一个包含 model.zip 文件的空文件夹。如果我提取这个 jar,我会得到 johnsnow/mymodel.zip
我的应用程序代码尝试以以下方式访问此 zip:
getClass().getResourceAsStream("johnsnow/mymodel.zip")
但当然,我没有正确处理此资源并最终得到一个空指针异常。我究竟做错了什么?我不应该能够使用 getClass().getResourceAsStream() 方法访问类路径中的 jar 文件中的文件吗?
脚注:
由于 model.zip 太大,我们决定不将其与代码库一起发布。因此,我们将其推送到一个 nexus 存储库中,并通过 gradle 编译依赖项引用该 jar,如下所示:
compile "com.company.group.nlp:my-model:1.0@jar"
构建发行版会拉取这个 jar,并将其放入应用程序/库中的事实告诉我 gradle 完成了它的一部分(将依赖项下载到类路径)。问题仍然是我似乎无法找到访问 my-model.jar 中的 mymodel.zip 的方法
【问题讨论】:
-
我认为an answer to another question 可能会帮助你
-
在前面放一个
/:getClass().getResourceAsStream("/johnsnow/mymodel.zip") -
这似乎有效,伙计们!非常感谢!
标签: java classloader jetty-9 jetty-8