jar - 通过 sbt 打包的 one-jar 内的类路径资源

标签 jar classloader sbt onejar

我有一个使用 SBT 构建的项目,它使用 one-jar 插件打包单个 jar。该项目在 src/main/resources/fixture 中包含一堆 json 文件,我曾经通过

访问这些文件
new java.io.File(App.getClass.getResource("/fixture").getFile

不幸的是,由于没有返回任何资源,因此这不再有效。我认为 one-jar 使用一种特殊的类加载机制?解决这个问题的最佳方法是什么?

最佳答案

I think one-jar uses a special classloading mechanism?

是的,这一定是真的,因为没有标准化方法来加载打包到依赖jar中的类,而这些类又打包到应用程序jar。这通常是通过额外的类加载器技巧来实现的。

使用 One-JAR 时加载资源为 documented here .

关于jar - 通过 sbt 打包的 one-jar 内的类路径资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20635556/

相关文章:

java - 如何在 IntelliJ IDEA 中为 Spring Boot 项目构建 jar Artifact

java - Jar Gradle外的依赖

java - hibernate.cfg.xml 已存在于我的项目中,但我收到此错误 hibernate.cfg.xml 未找到

sbt - 如何在具有多个电源的单个模块项目中设置 sbt-native-packager

scala - 从任务运行 SBT 命令

nginx - ElasticBeanstalk 上的 Websockets 给出 404

包括 jar 在内的 android lib 的 Android 应用程序

java - Apache 点燃: Classloader

java - 让 JVM 使用我自己的类加载器

ScalaJS 简单地将复杂输出重定向到指定目录