写好的一个java applet,利用一个打开按钮(JBottom),点击后,可以在系统里选择并打开一文件,比如说一张图片,并显示出来(JLabel)。applet使用正常。
可是遇到一个问题,现在将此applet嵌入html文件中,并在浏览器上打开,applet正常显示,其他功能正常,可是选择打开文件这一功能无法使用,点击打开文件按钮,没有任何反应。请问大家这是什么问题?如何解决?还是这一功能在html就无法使用?谢谢大家了!!

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【javalining】截止到2008-07-13 10:41:24的历史汇总数据(不包括此帖):
    发帖的总数量:13                       发帖的总分数:180                      每贴平均分数:13                       
    回帖的总数量:7                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:12                       结贴的总分数:160                      
    无满意结贴数:4                        无满意结贴分:80                       
    未结的帖子数:1                        未结的总分数:20                       
    结贴的百分比:92.31 %               结分的百分比:88.89 %                  
    无满意结贴率:33.33 %               无满意结分率:50.00 %                  
    值得尊敬
      

  2.   

    出于安全性,applet的这一功能被屏蔽了。
    我也没找到哪有设置的,估计不行吧。
      

  3.   

    估计是applet本身的问题,你可以把这段逻辑用jsp写下,一样的
      

  4.   

    为applet添加数字签名后方可访问本地资源如何添加签名请看:
    http://topic.csdn.net/u/20080519/00/68fc616a-b43f-414d-81fd-1f3e40050def.html
      

  5.   

    尝试6楼提议的数字签名。执行:
    keytool -genkey -alias mykey -keystore url 
    keytool -list -keystore url 
    在执行〉
    jarsigner -keystore url Applet.jar mykey 
    让我输入
    enter Passphrase for key-store
    这是要输入什么呢?谢谢!!!
      

  6.   

    由于applet的沙箱机制,applet需要签名后才可访问客户端文件
    签名脚本:
    1.打开cmd
    2.进入jdk的bin目录,执行以下脚本
    keytool -genkey -keystore javalining.store -alias javalining 
    (javalining为文件名,可变)
    回车,待上面命令执行完成后,执行以下命令填写相关信息
    keytool -export -keystore javalining.store -alias javalining -file javalining.cert
    记住所填密码
    3.将相关证书信息填写好后,将要进行数字签名的jar(youjar.jar)拷到bin目录下,运行以下命令即可
    jarsigner -keystore javalining.store youjar.jar javalining
    签名文件创建后后,以后签名只需执行第3步即可
    楼主可试一试
      

  7.   

    如果楼主所依赖的jar包比较多,在对代码进行修改后可以用winrar直接把原来打包好的jar打开,找到你修改的类所在路径将其删除后将编译后的新的class文件添加到该路径下就可以了,然后将其拷贝到bin下进行签名,不知道说的是否清楚?
      

  8.   

    将下面的文本修改后复制到记事本另存为jarsigner.bat,双击运行后输入密码即可实现签名,当然要先建好密钥库文件
    ,也就实现执行
    1.打开cmd 
    2.进入jdk的bin目录,执行以下脚本 
    keytool -genkey -keystore javalining.store -alias javalining 
    (javalining为文件名,可变) 
    回车,待上面命令执行完成后,执行以下命令填写相关信息 
    keytool -export -keystore javalining.store -alias javalining -file javalining.cert 
    记住所填密码 
    成功后@echo off 
    title  applet签名工具
    @Rem 将下面的路径改为你系统中jdk对应路径
    cd C:\Program Files\Java\jdk1.5.0_03\bin
    @Rem 删除原来路径下的jar
    del youjar.jar
    @Rem 从你打包好的jar所在路径将打包好的jar复制到bin下,C:\youjar.jar为你jar包所在路径
    copy C:\youjar.jar
    @Rem 清除复制文件成功的提示
    cls
    @Rem 将下面的路径改为你系统中jdk对应路径
    jarsigner -keystore javalining.store youjar.jar javalining 
    @Rem 打开cmd输入密码,签名完成
    cmd.exe
      

  9.   

    你好,applet本身的安全机制就是禁止访问本地的.
    如果想访问本地文件,必须授权.
      

  10.   

    非常感谢javalining的提问和bsr1983的回答