好久没更新博客了!
最近,由于项目要求,需要将swing开发的一个桌面程序转换为Applet并嵌入到web中。转换工作很快就完成了,但是在嵌入到web以后,每次访问applet都会弹出一个警告对话框,大体的意思说是applet包含了不受信的代码,提示你是否要阻止运行,如果不细看提示,很容易就点击了是,结果applet就不会运行了。
通过看对话框中的提示,对applet中的所有jar都进行了签名,再次访问还是出现了警告对话框,再看,发现提示说applet中包含了签名和未签名的代码(资源)。我们知道java的签名只会对jar包中的class进行签名,而不会对其中的资源文件进行签名,这就导致为什么签名了还是会出现警告。于是到oracle官网去寻找答案,找到以下有用的链接:http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/mixed_code.html
这篇文章里面提到了两种方法,分别是针对用户和开发人员(或者部署人员的)。最终用户可以通过修改控制面板中java的设置来处理applet如何运行混合的代码。另一种针对开发人员的方式就是修改jar包中的清单文件(manifest )配置,可以通过设置两个属性Trusted-Only属性和Trusted-Library属性来控制applet在浏览器的运行。
其中Trusted-Only针对那些不需要不受信控件的applet或application,设置了Trusted-Only不会去加载不受信的classes或者资源。
而相对应的Trusted-Library就是允许applet或application使用那些不受信的控件,同时不会弹出警告对话框。Trusted-Library会阻止受信任的组件去使用不受信任的组件。
通过上面的这些信息,已经找到了去掉对话框的办法了,那就是修改applet使用到的所有jar包的manifest文件,添加Trusted-Library属性,然后再签名。
问题:在上面的过程中,遇到一个问题就是一个第三方的jar已经签名了,这个时候你修改了它的manifest文件,然后再签名就会报错,签名失败。这时可以删除META-INF目录中的.DSA和.SF文件,然后把MANIFEST.MF中的签名信息手动删掉,再次签名即可。
MANIFEST.MF中的签名信息格式如下:
Name: resources/language/lang.xml
SHA1-Digest: vC76jNzoYHDH4JE/oV+/gp92F9o=
至此问题解决。
相关推荐
用Java实现的HotJava浏览器(支持Java applet).zip
Java的线程和Java AppletJava的线程和Java AppletJava的线程和Java AppletJava的线程和Java AppletJava的线程和Java Applet
最近要用javaapplet开发项目,在csdn上搜过了applet的用法和例子进行下载,还有一些网上比较好的教程全都整合了起来。内置有: Java+Applet实例讲解(分为1和2两部分)、Java+Applet实例编程、java+Applet登录、Java...
Applet与Swing编写一个简单的HTML浏览器,是一个学习的好列程
用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。
一些JavaApplet小程序应用源码例子集,包括小应用程序与应用程序组合、在Applet中弹出窗口、通过HTML文件向Applet传递参数、swing的使用等。
在eclipse中运行java applet时的一些问题,无法显示图片。
简单的java applet图像移动重画实例,简单的java applet图像移动重画实例
JavaApplet与JavaScript的使用
关于JAVA Applet 的小程序 使用的时候请写一个HTML文档
javaapplication和javaapplet的区别
阳光酒店管理系统(javaapplet+SQL)阳光酒店管理系统(javaapplet+SQL)阳光酒店管理系统(javaapplet+SQL)阳光酒店管理系统(javaapplet+SQL)阳光酒店管理系统(javaapplet+SQL)阳光酒店管理系统(javaapplet+SQL)阳光酒店...
代码清晰明了,案例浅显易懂,让你1分钟了解java applet 。
java Application与java Applet的区别
解决java Applet被Dialog遮住 的问题 跟浏览器有很大关系 升级了浏览器 可能又会出现问题 不好搞 但其中有DIV浮在java applet上的成功例子 firefox8.01已成功通过 可以参考一下
阳光酒店管理系统(javaapplet+SQL)阳光酒店管理系统(javaapplet+SQL)阳光酒店管理系统(javaapplet+SQL)阳光酒店管理系统(javaapplet+SQL)阳光酒店管理系统(javaapplet+SQL)阳光酒店管理系统(javaapplet+SQL)阳光酒店...
(Java毕业设计)聊天系统(java+applet)(Java毕业设计)聊天系统(java+applet)(Java毕业设计)聊天系统(java+applet)(Java毕业设计)聊天系统(java+applet)(Java毕业设计)聊天系统(java+applet)(Java毕业设计)聊天系统...
简单的一个Java Applet的动态显示图片的小程序。将资源内的图片放置到E盘根目录下。如果想换图片,记得修改width和heigh的初始值,值为图片的宽和高。如果你对动画有兴趣,可以试着稍微修改一下本程序(程序里有相关...
Java Applet 入门教程
经典Java applet程序设计 案例, Javascript操作Applet:实现文字对齐方式的实例 简单Applet实例 图像处理 为Applet传递参数:实现滚动字幕的实例