gpt4 book ai didi

java - getResource() 在 Gradle 项目中返回 null

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:54:05 26 4
gpt4 key购买 nike

我知道关于这个还有其他几个问题......

但我的问题似乎有点不同,因为我似乎拥有所有必要的东西来避免这个问题。

代码:

 this.getClass().getResource("checkstyle_whitespace.xml"); // null

问题是我已经通过检查调试器中的类加载器验证了我的类路径。这是我所看到的:

 27 = {URL@1235} "file:/Users/dennis/Documents/Development/java/java-grader/build/classes/main/"
28 = {URL@1236} "file:/Users/dennis/Documents/Development/java/java-grader/build/resources/main/"

Blow 是我的目录结构的快速。请参阅 build/resourcessrc/main/resources。当 gradle 构建我的项目时,正在复制这些文件。

├── build
│   ├── classes
│   │   ├── main
│   │   │   └── javaGrader
│   │   └── test
│   │   └── javaGraderTest
│   └── resources
│   └── main
│   ├── checkstyle_whitespace.xml
│   └── grammars
├── src
│   ├── main
│   │   ├── java
│   │   │   └── javaGrader
│   │   └── resources
│   │   ├── checkstyle_whitespace.xml
│   │   └── grammars
│   └── test
│   ├── java
│   │   └── javaGraderTest
│   └── resources
│   └── mini_test
├── target
│   ├── classes
│   ├── generated-sources
│   │   └── annotations
│   └── generated-test-sources
│   └── test-annotations
└── test_assets

据我了解,这些文件应该可以访问,因为它们在 build 中。如果我错了请纠正我...

最佳答案

如果您将不以/ 开头的资源路径传递给Class.getResource(),类加载器会在类(class)。不在根。你的代码应该是

this.getClass().getResource("/checkstyle_whitespace.xml")

this.getClass().getClassLoader().getResource("checkstyle_whitespace.xml")

关于java - getResource() 在 Gradle 项目中返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35861606/

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