为什么在java中使用java.security.SecurityManager可以读取任何
发布时间:2020-12-15 08:26:38 所属栏目:Java 来源:网络整理
导读:我只想在我的 Java程序中读取和写入一些文件.所以我使用java.security.SecurityManager来管理它,但似乎并不令人满意. Main.java文件如下 import java.io.*;import java.util.*;public class Main { static private final String INPUT = "in.txt"; public st
我只想在我的
Java程序中读取和写入一些文件.所以我使用java.security.SecurityManager来管理它,但似乎并不令人满意.
Main.java文件如下 import java.io.*; import java.util.*; public class Main { static private final String INPUT = "in.txt"; public static void main(String args[]) throws Exception { FileInputStream instream = null; BufferedReader reader = new BufferedReader(new FileReader(INPUT)); String tempString = null; while ((tempString = reader.readLine()) != null) { System.out.println(tempString); } } } 和文件/opt/java.policy如下 grant { permission java.io.FilePermission "./out.txt","write"; }; 然后我跑了 java -Xss64m -Xms16m -Xmx512m -Djava.security.manager -Djava.security.policy=/opt/java.policy Main 但是没有错误,输出就是in.txt.我尝试了其他文件并获得了相同的结果.为什么会这样? 解决方法
从
Javadoc:
并不是说这是明确的.代码不在“目录”中:它是从当前工作目录执行的,这似乎是意思. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |