一个Java Applets在本机用AppletViewer运行时没有任何问题,部署到Web上则出错了。出错为:
dis = new DataInputStream("".getClass().getResourceAsStream("/XXX.bin"));这里的使用有什么问题吗? 

解决方案 »

  1.   

    是因为applets的运行机制问题,为了安全,applets不允许访问本地资源。
      

  2.   

    Applet安全机制
                                           通常的浏览器运行Applet程序的安全策略如下: 
    (1)Applet不能启动任何本地的可执行文件。 
    (2)Applet只能与它们最初驻留的服务器通信,而不能与其它位于“网络”上客户机本地网络上的服务器通信。 
    (3)Applet不能读写本地文件系统。 
    (4)Applet只能获取本地计算机的部分非敏感性信息,如操作系统名称和版本号、文件及路径分隔符、换行符等。 
    (5)Applet运行时弹出的窗口都会带有一些警告消息。 
    (6)此外,Applet还可通过数字签名(标明其作者和来源地)进行不同的安全授权。
      

  3.   

    /XXX.bin是jar中的资源,且Applet是经过签名的
      

  4.   

    dis = new DataInputStream("".getClass().getResourceAsStream("/XXX.bin"));XXX.bin的数据不能读取,导致后续的错误,但在AppletViewer是可以的。