语法之一:
grant codeBase “file:/C:/somepath/api/” {
…
};
针对这个语法url的匹配规则:
codeBase值的确切含义取决于结尾处的字符。codeBase带有结尾"/“匹配指定目录中的所有类文件(不是JAR文件)。codeBase带有结尾”/*"匹配该目录中包含的所有文件(类和JAR文件)。codeBase带有结尾的A "/-"匹配目录中的所有文件(类和JAR文件),并递归地匹配该目录中包含的子目录中的所有文件。
并且,亲测发现,这个url中不能包含类的包路径,如:
有一个类文件c:/doc/project/com/Test.class,并且这个类的包为com,所以我们以c:/doc/project/com/-去匹配这个类文件的时候,会抛出没有权限的异常,所以url不能为c:/doc/project/com/-,但可以为c:/doc/project/-,
下表说明了不同的情况:
//给程序赋予所有权限
grant {
permission java.security.AllPermission;
};
//程序有读写C:\\Users\\Administrator\\Desktop\\test\\下的文件的权限
grant
{
permission java.io.FilePermission
"C:\\Users\\Administrator\\Desktop\\test\\*", "read,write";
};
*/
// E:/IdeaProject/test/out/下的类有读写C:\\Users\\Administrator\\Desktop\\test\\下的文件的权限
grant codebase "file:E:/IdeaProject/test/out/-"
{
permission java.io.FilePermission
"C:\\Users\\Administrator\\Desktop\\test\\*", "read,write";
};
```注意:上面的类指的都是.class文件,不包括.jar和.java文件