Applet 访问文件

众所周知,JAVA 的沙箱是有固定边界的域。这种固定的域会限制非本机代码访问敏感资源。但是并非没有办法突破这种限制,可以修改JAVA 的安全规则文件来实现。

安全规则文件通常是文本文件,以.policy 为后缀名称。它有自己的语法格式,可以使用KEYTOOLS 工具来管理。

下面通过一个例子来说明通过修改安全文件是APPLET 达到访问本地文件的例子。


import java.applet.*;
import java.io.FileInputStream;
import java.awt.*;
public class ZApplet extends Applet {
 public void paint(Graphics g)
 {
  try
   {
    
    FileInputStream fr = new FileInputStream("d://41.html");
    byte[] bt = new byte[fr.available()];

    for(int i=0;i<bt.length;i++)
    {
     bt[i] = (byte)fr.read();
    }
    g.drawString(new String(bt),10,25);
    


   }
   catch(Exception e)
   {
    e.printStackTrace();
   }
 }
}

HTML 文件内容如下

<applet name="zApplet" code="ZApplet.class" codebase="." width=800 height=600>
</applet>

运行例子有两种方式:

1.编写POLICY 文件,文件名为readFile.policy ,内容如下:

grant codeBase "file:/F:/Meng_Blog/applets"
{
 permission java.io.FilePermission "d://41.html","read";
};

规则文件说明:来自F:/Meng_Blog/applets 目录下的应用可以读取客户端特定路径下的文件.(d://41.html)

通过APPLETVIEWER 命令来执行

 

appletviewer -J-Djava.security.policy=readFile.policy ZApplet.html

 

2.另外一种方式,把readFile.policy的文件内容COPY 到你的 %JAVA_HOME%/jre/lib/security/java.policy 文件的后面。然后直接打开 ZApplet.html

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值