java - 在 Java Webstart 应用程序中显示图像

标签 java image resources java-web-start

请原谅我对 Java Webstart 的有限理解,因为我对此还很陌生。

所以我让我的应用程序在我的计算机上的 JAR 文件中运行,并在静态方法中使用此代码段(类扩展 JFrame):

ImageIcon image = new javax.swing.ImageIcon(window.getClass().getResource("/resources/img/loginWindowTop.jpg"));
//ImageIcon image = new ImageIcon(window.getClass().getResource("/resources/img/loginWindowTop.jpg")); // tried this too
JLabel imageLabel = new JLabel(image);
imageLabel.setBounds(rect);
window.add(imageLabel);

当直接从 JAR 文件在我的计算机上启动应用程序时,它可以工作。当使用 JNLP 文件从 Web 服务器进行测试时,应用程序崩溃,显示以下内容:

java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)
at gui.LoginWindow.create(LoginWindow.java:42)
at main.Starter.main(Starter.java:13)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.sun.javaws.Launcher.executeApplication(Unknown Source)
at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
at com.sun.javaws.Launcher.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

如果有人能解释该怎么做,我将非常感激。我在互联网上搜索了很长一段时间,但没有解决方案可以帮助我(还)。我希望这不是因为我正在使用静态 JFrame(在我的代码片段中称为窗口)?

最佳答案

使用 WinZip 或 7Zip 打开 jar,查看路径是否确实是 /resources/img/loginWindowTop.jpg,并且区分大小写。 (特别是在驼峰式情况下,文件名应该位于文件系统上。)类加载器会出现一些深奥的错误,那么您可以尝试简单地使用 window.getClass... 来代替 getClass....

关于java - 在 Java Webstart 应用程序中显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10259788/

相关文章:

java - java从xml文档接收子节点

javascript - 浏览图像未正确裁剪

c# - Resourcemanagers 资源集有错误的值

android - 带有 "%"符号的字符串资源

java - getResource 无法导出到 jar 中

java - 在 Vaadin 中绑定(bind)外键 (EclipseLink)

java - 将 ArrayList 转换为 TreeSet

java - 为什么类转换在 run 方法中失败,即使检查了 instanceof、outside run

html - 在 EPUB (v3) 中调整图像大小

image - 用于自动裁剪的 Opencv 和 python