Web Start无法找到系统资源

时间:2015-11-12 14:22:38

标签: java netbeans code-signing java-web-start embedded-resource

当我没有尝试将它用作网络启动应用程序时,我有一个运行良好的应用程序,但是当我将其转换为Netbeans中的应用程序时,它会变得很糟糕。尝试获取位于依赖库中的资源时,控制台显示空指针异常。代码行本身会抓取该库文件中的.png文件,并将其用于窗口图标。杀死它的代码行是:

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 start = failboat。代码已签名,如果这有任何区别。正在使用的库文件是一个大的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)

1 个答案:

答案 0 :(得分:1)

尝试仅使用文件名使用getClassLoader()。getResource() 不需要完整路径,getClassLoader()通过WebStart&amp;处理魔术。也在当地:

String filename = "someimage.png";
Image resultImg = null;    
URL url = getClassLoader().getResource(filename);  
if (url != null)
    resultImg = Toolkit.getDefaultToolkit().getImage(url);