一、压缩你的class类文件为jar包
1.如果你的须要压缩的类文件存在的包为:cn.mbq.test1和cn.mbq.test2
2.进入你的classes文件夹,在DOS窗体中运行命令:jar cf mytest.jar cn.mbq.test1 cn.mbq.test2
3.运行命令后你会在当前文件夹中找到mytest.jar文件,这个就是刚才生成的档案文件。你能够改动它的后缀为rar,然后使用winrar压缩程序打开它查看看是否正确。
jar -cvf MyApplet.jar class
二、使用keytool工具生成密匙库
1.keytool工具位于${java_home}/bin文件夹下;
2.在DOS窗体中运行命令:keytool -genkey -keystore mytest.store -alias mbq
注意:mytest.store 是你的密匙库的名称,能够任意改动,后缀请不要改动!
mbq 为别名,这个也能够改成自己的名称
3.运行上述命令后,DOS窗体中会提示你输入keystore的password、你的姓名、组织单位等等信息。这里要注意的是输入password请记住,后面要用到的。在最后,我们输入y确认信息。然后再直接回车设置mbq的主password和storepassword一致就可以!
三、使用keytool工具导出签名时用到的证书
1.在DOS窗体中运行命令:keytool -export -keystore mytest.store -alias mbq -file mbq.cert
注意:mytest.store 就是第二步生成的密匙库名称
mbq 也是在第二步中我们指定的别名
mbq.cert 为我们生成的证书的名称,能够自己改动名称,注意后缀不要改
2.命令运行成功,我们会在当前文件夹下找到一个mbq.cert文件,这个就是我们刚才生成的证书。
四、使用jarsigner工具签名jar压缩文档
1.jarsigner工具位于${java_home}/bin文件夹下;
2.在当前DOS窗体中运行命令:jarsigner -keystore mytest.store mytest.jar mbq
注意:mytest.store 就是我们在第二步中生成的密匙库名称
mytest.jar 就是我们这第一步压缩的jar文档
mbq 是提供者的名称,我们这里设置为我们的别名
再运行的Applet就能够訪问本地了
嵌入Applet部分的写法:
<APPLET
CODEBASE = "."
CODE = "jcomponent.FileReaderApplet.class"
ARCHIVE ="MyClass.jar"
NAME = "TestApplet"
WIDTH = 400
HEIGHT = 300
HSPACE = 0
VSPACE = 0
ALIGN = middle
>
</APPLET>
OBJECT对象中的CODEBASE指的路径是相对当前页面的路径,是能够有效的.最后部署的时候仅仅须要签名后的jar包就能够了,其它的文件都不须要
关于Html嵌入Applet的问题
标签<Applet>的属性介绍
属性 含义
Width Applet在Html页面上的宽度
Height Applet在Html页面上的高度
Name Applet在Html页面上的名称,用于区名一个Html页面上的多个Applet
Code Applet类名,必须带后缀”class”当没有属性archive时,直接写类名当有属性archive时,必须带包名
Codebase Applet的类相对路径,相对于Html页面位置
Archive Applet所在Jar包的文件名称
标签< PARAM>的属性介绍
属性 含义
Name Applet传入的參数名
Value Applet传入的參数值
当Applet 为一个Class类文件嵌入的写法
属性Code ==========Applet类名,必须带后缀名
属性CodeBase ---------------Class类文件相对于Html页面的相对路径
Applet为一个JAR包,嵌入Html的写法
属性Code ==========Applet类名,包含包名
属性CodeBase ----------------Applet JAR包相对于Html页面的相对路径
属性Archive -----------------------Applet Jar包文件名称
对于须要授权的applet(如读取本地文件),进行数字签名后,在paint方法中能够读取本地文件,但放在自己定义的方法中,通过js调用自己定义的方法还是提示没有权限,不解
能够通过再建立一个线程类,在run方法中调用applet中读取本地文件的自己定义方法,线程类能够在applet中的初始化方法init中建立,applet类当做參数传给线程类
JavaScript訪问Applet
<applet name="appletName" ....../>
//JavaScript訪问Applet属性
window.document.appletName.appletField (属性必须是public的,"window.document."也能够不写)
/JavaScript訪问Applet方法
window.document.appletName.appletMethod (方法必须是public的,"window.document."也能够不写)
var result = appletName.appletMethod ("param"); //调用applet带參数的方法和有返回值的方法
打包jar文件必须把applet引用到的类所有打包进去,否则调用方法会找不到(对象不支持此属性或方法),或一些其它错误