首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >URL resource =this.getClass().getResource(“文件名”)为空

URL resource =this.getClass().getResource(“文件名”)为空
EN

Stack Overflow用户
提问于 2021-01-23 01:21:57
回答 1查看 36关注 0票数 0

完全不知所措。我有:

代码语言:javascript
复制
URL resource = this.getClass().getResource("eye-visible.png");

并且URL的计算结果为空。"eye-visible.png“是与我的类相同的包中的一个文件,即"Controller.java":

我也尝试过(实际上我是从这个开始的):

代码语言:javascript
复制
InputStream inputStream = Controller.class.getResourceAsStream("eye-visible.png");

这也会返回null。

真的卡住了-有什么线索吗??

这是一个模块化的项目,我在JDK14上运行。我使用NetBeans作为集成开发环境。以上代码行位于JavaFX应用程序的start方法中。在一个只有一个主类的新java项目中,我用上面的几行代码重现了相同的null输出: same effect。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-23 02:20:27

感谢@Andreas的评论,

->未将非.java文件复制到.class文件的位置(仅忽略)。

这是使用Maven构建的结果,Maven构建在默认情况下具有此行为(只有src/main/resources中的文件将被复制到单独的位置)。

修复方法是将此片段添加到POM.xml中(根据另一个问题的this answer ):

代码语言:javascript
复制
<build>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <excludes>
                <exclude>**/*.java</exclude>
            </excludes>
        </resource>
    </resources>
    <testResources>
        <testResource>
            <directory>src/test/java</directory>
            <excludes>
                <exclude>**/*.java</exclude>
            </excludes>
        </testResource>
    </testResources>
</build>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65849855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档