访问被拒绝访问/ etc / hosts

时间:2016-02-08 12:40:13

标签: java filesystems bufferedwriter

我无法使用java访问Windows的主机文件(只需写入):

java.io.FileNotFoundException: C:\Windows\system32\drivers\etc\hosts (Access is denied)
at java.io.FileOutputStream.open(Native Method)

当我想将我的文字附加到主机文件时出现错误...

这是我的代码:

    BufferedWriter bw = null;
    try {
        // APPEND MODE SET HERE
        bw = new BufferedWriter(new FileWriter(file,true));
        bw.write(text);
        bw.newLine();
        bw.flush();
    } catch(FileNotFoundException e) {
        e.printStackTrace();

    } catch (IOException ioe) {
        ioe.printStackTrace();
    } finally {                       try {
        // always close the file
        bw.close();
        } catch (IOException ex) {
            Logger.getLogger(FileWrite.class.getName()).log(Level.SEVERE, null, ex);
        }
    } 

} // end test()

此代码适用于Windows的其他位置的简单文件..(只是在c:\ windows \ ...

上得到错误

和: 我使用microsoft manifest来设置管理访问权限[not work]

设置对hosts文件的完全访问权限[not work]

请帮助..

TNX

1 个答案:

答案 0 :(得分:0)

检查您的java是否真的以管理员​​身份运行(即写入同一文件夹中的新文件)。显然存在访问问题并且为了解决它,您需要了解您的身份(您的应用的用户/服务)以及您尝试访问的资源(文件)的权限。

这里有两种方法可以尝试和调试它: 1)您没有权限写入文件(可以阅读吗?) 2)您无权进入该文件夹(可以列出其中的文件)