一般Applet不能访问客户端的文件系统。根据Java2的安全模型,如果对来源可信的代码可以在一定范围扩大权限。
下面是小应用程序(AppletReadFile.java),以及规则文件AppletReadFile.policy.
在同一目录下的AppletReadFile.htm的内容如下:
在没有扩展Java2系统规则文件前,运行该Applet出现下图所示的异常:
对于这个小应用程序,如果已经建立了用户安全规则文件AppletReadFile.policy运行,可以有两种方式:
<方式一>:在cmd下执行如下命令:
D:/Java/Security>appletviewer -J-Djava.security.policy=AppletReadFile.policy App
letReadFile.htm
(注意-J-Djava之间不能有空格)
运行效果如下图:
界面显示for.txt的文件内容。
<方式二>:将策略文件设置在默认的Java系统安全策略文件或默认的用户安全策略文件中。
对于浏览器,Windows系统中默认的Java系统安全策略文件是:|系统盘|Program Files/Java/|JREPATH|/lib/security.policy。%JREPATH%根据当前JVM版本而定。该安全策略文件是用于所有用户,打开该文件将AppletReadFile.policy内容复制进去,就可以允许来自D:/Java/Security/的应用程序读特定文件d:/for.txt。
运行结果如下:
在Java2系统规则文件中添加规则项目,容易破坏Java2系统安全规则问敬爱呢,不是值得推荐的方法,上述新建利用用户专用安全规则文件是值得推荐的方法。