我正在使用eclipse juno for java应用程序,并希望在应用程序上加载图像,为此我正在编写代码
URL imageURL = LoginWindow.class.getClassLoader().getResource("resources/img/pause.png");
会出现以下错误
找不到资源:resources / img / pause.png 线程" main"中的例外情况java.lang.IllegalArgumentException:在java.awt.TrayIcon上创建带有null Image的TrayIcon。(未知来源)
但如果我将图像放在我的java文件所在的文件夹中并删除所有路径并仅提供" pause.png"然后它正常工作。
答案 0 :(得分:3)
使用这种形式的调用获得的类加载器可能 不 是用于加载应用程序资源的上下文类加载器。我建议改为:
LoginWindow lw = new LoginWindow();
// exactly as below, including leading /
URL url = lw.getClass().getResource("/resources/img/pause.png");
答案 1 :(得分:1)
从他们那里获取类相对路径可以参考图像
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
String imgUrl =classLoader.getResource(".").getPath()+
"../resources/img/pause.png";
通过使用imgUrl,您可以执行您想要执行的操作。
答案 2 :(得分:-1)
请提供您项目的结构。 如果您有Maven项目,您的代码应如下所示:
URL imageURL = LoginWindow.class.getClassLoader().getResource("src/main/resources/img/pause.png");
答案 3 :(得分:-1)
如果您在applet中运行
,请尝试此操作URL url = new URL(getCodeBase(), "resources/img/pause.png");