当前位置: 首页 > 知识库问答 >
问题:

getResources()使用Gradle项目返回null

马魁
2023-03-14

我知道还有其他几个问题。。。

  • 类.getResource() 返回空
  • Java - 类.get资源返回空
  • 调用 context.getResources() 返回 null
  • getClassLoader().getResource(filepath) 返回一个空指针

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

代码:

 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

根据我的理解,这些文件应该是可访问的,因为它们在< code>build中。如果我错了,请纠正我...

共有2个答案

黎奇略
2023-03-14

在 java 文件夹存在于项目主文件夹中的同一位置创建一个名为“资源”的文件夹。并将所有图像和其他资源定位到“资源”文件夹中。得到这样的人

new ImageIcon(getClass().getClassLoader().getResource("image.png"));
蓟清野
2023-03-14

如果传递的资源路径不是以/开头,则传递到类。getResource(),类加载器在类的包中查找资源。根本不是。您的代码应该是

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

this.getClass().getClassLoader().getResource("checkstyle_whitespace.xml")
 类似资料:
  • 问题内容: 使用Eclipse IDE。该行: 返回。我已经在项目的根目录下创建了该文件夹。 感兴趣的代码是: 并引发异常: 有什么帮助吗? 问题答案: 确保res文件夹在类路径中,使用项目属性> Java构建路径>源选项卡进行验证。如果不在类路径中,可以通过右侧的“ 添加文件夹..” 按钮 添加 。

  • 我正在尝试访问项目中的文件。但是getResource方法返回null。 以及eclipse工作区中项目文件夹的外观: 为什么啊?我想访问我的资产文件夹中的文件? 编辑我创建了一个jar文件,这是jar的内容: 已解决 首先,我有很多图像文件,所以我想把它们组织在一个文件夹中。我把assets文件夹放在src目录中,最后我能够访问这些文件。

  • 我想让Gradle使用Eclipse项目依赖项。与这个问题不同,我不想做任何导出,因为我不想在更改后因为忘记再导出而查找问题。与这个问题不同的是,我根本不想将Gradle集成到Eclipse中,因为我对我的Eclipse的工作方式感到满意(它比Gradle构建快得多),而且我还担心我的Eclipse 3.7.2对于这样的游戏来说可能太老了。 理想情况下,我想要 事实上,拿到罐子就足够了。 我试过的

  • 我正在尝试将我的开发环境从Eclipse切换到IntelliJ。我正在开发一个JavaEE应用程序,该应用程序使用从该应用程序返回的路径。getClass()。getResource(“”)。getFile()创建新的FileInputStream。在使用Eclipse/Jetty(来自Eclipse marketplace上的Jetty插件)运行项目和使用Glassfish进行生产时,返回的字符

  • 我尝试使用gradle构建工具构建一个简单的android应用程序。但是我得到了这样的错误 方法无签名:org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.compile()适用于参数类型:(java.lang.String)值:[org.gradle.api.plugins: gradle and

  • 火花UDF是否可能返回多个值?如果是这样,如何在数据框架API中访问各个项目。