繁体   English   中英

静态上下文中的getClass()。getResource()

[英]getClass().getResource() in static context

我正在尝试使用以下代码从静态方法中获取资源(image.png,与此代码位于同一包中):

import java.net.*;

public class StaticResource {

    public static void main(String[] args) {
        URL u = StaticResource.class.getClass().getResource("image.png");
        System.out.println(u);
    }

}

输出只是“空”

我也尝试过StaticResource.class.getClass().getClassLoader().getResource("image.png"); ,它抛出NullPointerException

我看到了其他可行的解决方案,我在做什么错呢?

删除“ .getClass()”部分。 只需使用

URL u = StaticResource.class.getResource("image.png");

始终尝试将资源放在JAVA代码之外,以使其他包的类更易于管理和重用。

你可以尝试任何一个

// Read from same package 
URL url = StaticResource.class.getResource("c.png");

// Read from same package 
InputStream in = StaticResource.class.getResourceAsStream("c.png");

// Read from absolute path
File file = new File("E:/SOFTWARE/TrainPIS/res/drawable/c.png");

// Read from images folder parallel to src in your project
File file = new File("images/c.jpg");

// Read from src/images folder
URL url = StaticResource.class.getResource("/images/c.png")

// Read from src/images folder
InputStream in = StaticResource.class.getResourceAsStream("/images/c.png")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM