我知道与此有关的其他几个问题...
但是我的问题似乎有所不同,因为我似乎拥有所有必要的条件来解决此问题。
代码:
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是tree
我的目录结构的快速入门。请参阅build/resources
和src/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
。如果我错了请纠正我...
如果传递的资源路径不是以/
to开头Class.getResource()
,则类加载器会在类的包中查找资源。不是根本。您的代码应为
this.getClass().getResource("/checkstyle_whitespace.xml")
或者
this.getClass().getClassLoader().getResource("checkstyle_whitespace.xml")
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句