Java Applet数字签名用Applet写的java小程序如果没有经过签名,那么访问客户端程序下载后会受到安全限制。步骤:
(1) 将java小程序打包
  jar cvf test.jar test.class(2) 生成名密钥库,如xmapclient
  keytool -genkey -keystore xmapclient.store -alias xmapclient  然后要求输入密码,接下来的根据需要输入,最后确认:y(3) 导出数字证书
  keytool -export -keystore xmapclient.store -alias xmapclient -file xmapclient.cer  密码:123456 (根据需要自己输入)(4) 对test.jar文件进行签名
  jarsigner -keystore xmapclient.store  test.jar xmapclient  密码:123456 (根据需要自己输入)编写HTML文件来运行Applet ,并可自动下载安装运行java小程序<html>
<head>
<title>New Page 1</title>
</head>
<body>
<!--能自动下载jre包-->
<OBJECT classid="clsid:CAFEEFAC-0014-0000-0000-ABCDEFFEDCBA" WIDTH = 300 HEIGHT = 300 codebase="jinstall-1_4_0-win.cab#Version=1,4,0,0">
      <PARAM NAME = CODE VALUE = "test.class" >
         <PARAM NAME = ARCHIVE VALUE = "test.jar" >
      <PARAM NAME="type" VALUE="application/x-java-applet;jpi-version=1.4">
         <PARAM NAME = "scriptable" VALUE = "false" >
  </object>
 </body>
  </html>

解决方案 »

  1.   

    对于jar文件,也可以通过eclipse等工具导出.
      

  2.   

    需要把客户端的jre安全文件权限放开。在jre目录下找到java.policy文件,放开本地文件读写权限,往改文件中加上:
    grant {              
                        permission java.security.AllPermission;
                  };
      

  3.   

    grant {              
           permission java.security.AllPermission;
    };
    我已经在java.policy文件加上了 上边的内容,可是还是不行,我是在jbuilder9开发的,在jbuilder下可以执行浏览到指定目录的文件,使用<applet ...> </applet> 在html上可以运行,但是无法浏览指定目录的文件。<OBJECT classid="clsid:CAFEEFAC-0014-0000-0000-ABCDEFFEDCBA" WIDTH = 300 HEIGHT = 300 codebase="jinstall-1_4_0-win.cab#Version=1,4,0,0">
          <PARAM NAME = CODE VALUE = "test.class" >
             <PARAM NAME = ARCHIVE VALUE = "test.jar" >
          <PARAM NAME="type" VALUE="application/x-java-applet;jpi-version=1.4">
             <PARAM NAME = "scriptable" VALUE = "false" >请问classid是怎样得到的?
          <PARAM NAME = CODE VALUE = "test.class" > 如果将包放在当前html文件的./test 目录下该怎样设置value
      

  4.   

    有没有人知道阿,我想做一个applet可以上传整个目录到远程服务器,同时也可以向远程数据库中增加内容,通过修改java.police已经可以访问本地文件,我想请问怎样才能解决安全问题,因为一旦授权之后其他的applet 也可以操作本地文件了,谢谢还有的问题就是有关
    <OBJECT classid="clsid:CAFEEFAC-0014-0000-0000-ABCDEFFEDCBA" WIDTH = 300 HEIGHT = 300 codebase="jinstall-1_4_0-win.cab#Version=1,4,0,0">
          <PARAM NAME = CODE VALUE = "test.class" >
             <PARAM NAME = ARCHIVE VALUE = "test.jar" >
          <PARAM NAME="type" VALUE="application/x-java-applet;jpi-version=1.4">
             <PARAM NAME = "scriptable" VALUE = "false" >请问classid是怎样得到的?
          <PARAM NAME = CODE VALUE = "test.class" > 如果将包放在当前html文件的./test 目录下该怎样设置value
      

  5.   

    我用keytool生成一个keystore
    然后用jbuilder建立applet jar。
    后面有个选项是signed的
    选择这个keystore就行了。然后每次运行的时候会弹出一个签名对话框,如果点击always以后就不会再弹出,然后就行了
    我这样做试了几次都没问题,但是有个人说这样不行,我也不知道为什么。
    我就是在csdn的文档搜索里面找到的。你搜索applet就行了,文章分成一二两篇,好像是一个外国人写的中国人翻译的。写得很简单,不像我找到的其他的写得那么复杂。
    总之我试着是可以的。
      

  6.   

    想想不放心,怕你找不到.我帮你找了一遍:
    http://dev.csdn.net/develop/article/23/23791.shtm
    http://dev.csdn.net/develop/article/23/23796.shtm老外写得很清楚,简单易懂。我用起来也很正常,但是那个文档下面有个CSDN 网友说:“
    老兄,这个地球人都知道,你在其他机器上调用这各html文件,看看能否打开本地文件,派托!搞搞清楚再发表”
    搞得我一点自信都没有了,其实我也在其他机子上面调用了,但也都是好的。实在不知道那个网友说的地球人都知道的东东对不对。
      

  7.   

    我用的,现在都再用,很好,没什么问题。
    1.将Applet所必须的CLASS打包生成一个JAR文件: 
       jar cvf myy.jar *.class 
     2.为刚才创建的包文件(rtccp.jar)创建keystore和keys: 
       keytool -genkey -keystore myyyy.keystore -alias myyyy
      此命令生成了一个名为myyyy.keystore的keystore文件,接着这条命令,系统会问你好多问题, 
      比如公司名称,地址,设定的密码等。 
     3.使用刚才生成的钥匙来对jar文件进行签名: 
       jarsigner -keystore myyyy.keystore myy.jar myyyy