1. AccessControlException

在调试ES源码时,如果我们需要直接用到FSDirectory.open(Paths.get(indexPath));这种的话,通常会碰到权限问题:

1
java.security.AccessControlException: access denied ("java.io.FilePermission" "D:\" "read")

其他比如接入Hadoop时,会有网络请求权限等,都属于权限问题

解决方案

这个时候,就需要修改本地Java的权限文件了,在%JAVA_HOME%/lib/security/下的default.policy或者java.policy文件,我们需要在最后加入内容:

1
2
3
4
5
grant {
    permission java.io.FilePermission "<<ALL FILES>>","read,write,delete";
    // 需要其他权限也加入到这里即可
    ...
};