Web Start 找不到系统资源
Web Start fails to find system resource
我有一个应用程序,当我不尝试将它用作 Web 启动应用程序时运行良好,但是当我将它转换为 Netbeans 中的应用程序时,它就崩溃了。尝试获取位于依赖库中的资源时,控制台显示空指针异常。该行代码本身在该库文件中获取一个 .png 文件,并将其用于 window 图标。杀死它的代码行是:
java.net.URL url = ClassLoader.getSystemResource("/com/my/icon/someimage.png");
Toolkit kit = Toolkit.getDefaultToolkit();
Image img = kit.createImage(url); // fails with null pointer exception
如果我不尝试将此作为 Web 启动应用程序,那么我的问题为零。它运行完美。 Web 启动 = 故障船。代码已签名,如果有任何区别的话。正在使用的库文件是一个大 jar,其中包含 3 个我创建的库文件以及 4 个我没有自己编写的需要的库文件。我还需要签署库文件吗?这本身可能是一个问题吗?
编辑:
如果我删除这些代码行,Web 应用程序可以正常运行。
这里是错误:
Exception in thread "AWT-EventQueue-2" java.lang.NullPointerException
at sun.net.util.URLUtil.getConnectPermission(Unknown Source)
at sun.awt.SunToolkit.checkPermissions(Unknown Source)
at sun.awt.SunToolkit.createImage(Unknown Source)
at DDSC.initComponents(DDSC.java:265)
at DDSC.<init>(DDSC.java:103)
尝试使用仅包含文件名的 getClassLoader().getResource()。
不需要完整路径,getClassLoader() 通过 WebStart 处理魔术,也在本地处理:
String filename = "someimage.png";
Image resultImg = null;
URL url = getClassLoader().getResource(filename);
if (url != null)
resultImg = Toolkit.getDefaultToolkit().getImage(url);
我有一个应用程序,当我不尝试将它用作 Web 启动应用程序时运行良好,但是当我将它转换为 Netbeans 中的应用程序时,它就崩溃了。尝试获取位于依赖库中的资源时,控制台显示空指针异常。该行代码本身在该库文件中获取一个 .png 文件,并将其用于 window 图标。杀死它的代码行是:
java.net.URL url = ClassLoader.getSystemResource("/com/my/icon/someimage.png");
Toolkit kit = Toolkit.getDefaultToolkit();
Image img = kit.createImage(url); // fails with null pointer exception
如果我不尝试将此作为 Web 启动应用程序,那么我的问题为零。它运行完美。 Web 启动 = 故障船。代码已签名,如果有任何区别的话。正在使用的库文件是一个大 jar,其中包含 3 个我创建的库文件以及 4 个我没有自己编写的需要的库文件。我还需要签署库文件吗?这本身可能是一个问题吗?
编辑:
如果我删除这些代码行,Web 应用程序可以正常运行。
这里是错误:
Exception in thread "AWT-EventQueue-2" java.lang.NullPointerException
at sun.net.util.URLUtil.getConnectPermission(Unknown Source)
at sun.awt.SunToolkit.checkPermissions(Unknown Source)
at sun.awt.SunToolkit.createImage(Unknown Source)
at DDSC.initComponents(DDSC.java:265)
at DDSC.<init>(DDSC.java:103)
尝试使用仅包含文件名的 getClassLoader().getResource()。
不需要完整路径,getClassLoader() 通过 WebStart 处理魔术,也在本地处理:
String filename = "someimage.png";
Image resultImg = null;
URL url = getClassLoader().getResource(filename);
if (url != null)
resultImg = Toolkit.getDefaultToolkit().getImage(url);