繁体   English   中英

Applet无法从jar加载文件

[英]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是自签名的或使用公认的证书颁发机构签名。

Oracle Java Applet教程

部署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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM