[英]Applet cannot load files from jar
使用Java 1.7.25(安全设置为最低,如果重要,则为32位),Windows 8,Google Chrome。
我写了一个需要加载一些图像的Applet。 一切都装在jar和html文件中,如下所示:
<html>
<body>
<applet code="package.AppletRun.class"
archive="appletJar.jar" width="1100" height="700">
</applet>
</body>
</html>
我尝试使用几种技术加载图像:
Image image = applet.getImage(applet.getCodeBase());
Image image = getClass().getResource("relative/package/filename");
Image image = getClass().getResource("/absolute/package/filename");
Image image = getClass().getResource("filename"); //same package
Image image = someStrangeThingsICantEvenRemeber();
问题是一切正常(我设置不加载任何图像)但图像只是不想加载,控制台显示javaNullPointerException
。 在Eclipse中没有问题,applet viewer不会抱怨。 如何将jar中的图像(类文件相同)加载到我的applet中?
更重要的是applet.getCodeBase()
返回null并且我100%确定我自己不创建JApplet实例。
问题不在于代码,而是在java(或它的安全设置)中。 您必须自行签署正在使用的jar文件。 浏览器会抱怨更多的警告窗口,但最后它会使用getClass().getResources(...)
来加载(查找,访问?)文件。 我不知道这个签名有什么变化,但它确实有效。
确保jar是自签名的或使用公认的证书颁发机构签名。
部署Applet
要部署Java小程序,首先编译源代码,将其打包为JAR文件,然后对JAR文件进行签名。 使用由认可的证书颁发机构颁发的证书对您的applet进行签名,可以确保您的用户可以安全地运行applet。 出于测试目的,您可以对applet进行自签名,这会在applet运行时生成更强的安全警告。 对于生产,请使用由受信任的证书颁发机构颁发的有效的当前代码签名证书。
要学习如何签署jar:
http://docs.oracle.com/javase/tutorial/deployment/jar/signing.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.