gpt4 book ai didi

java - 从 JAR 文件中加载 xml 文件有时有效

转载 作者:太空宇宙 更新时间:2023-11-04 13:10:13 24 4
gpt4 key购买 nike

我正在为 Android Studio 构建一个 Groovy 插件,它将执行一些 gradle 任务。不过,我需要从执行代码的 JAR 文件中加载 XML 文件。

JAR 文件如下:

  • com/包名称/代码
  • META-INF/gradle-plugins
  • 文件名.xml

因为 xml 文件位于 JAR 的根目录,所以我用它来将资源加载到输入流中

new InputStreamReader(CheckStyleTask.class.getResourceAsStream("/filename.xml"))

奇怪的是它只有时有效。有时它返回文件,有时它返回null。例如,我用这一行来检查路径:

        println(CheckStyleTask.class.getResource("/filename.xml").getPath())

而且路径完全正确。因此它能够使用 getResource 找到该文件,但使用 getResourceAsStream 则返回 null。

我认为 jar 的构建有问题,但在 IntelliJ 中,我将 gradle 任务设置为“jar”,它确实使用工作 xml 文件创建了一个工作 jar。

我在建筑方面做错了什么吗?或者 xml 文件有什么问题吗?

最佳答案

两个函数之间有一个区别: https://stackoverflow.com/a/20069798/5387592

您应该精确:在哪些情况下,结果会有所不同:在创建新 jar 后,还是在再次启动后。

1 检查文件是否确实嵌入到 jar 中:将 .jar 更改为 .zip 并检查内部

2 检查真实路径。例如,在 Eclipse 中,您放入一个文件夹,但该文件夹不会出现在生成的 jar 中

3个使用建议:照常使用绝对路径

关于java - 从 JAR 文件中加载 xml 文件有时有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34042965/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com