2014-03-05 13 views
0

你好,在所有的社区!我想改变CPU的频率时钟,但我是一个问题。要更改时钟频率,我需要修改文件scaling_max_freq(/ sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq),但是...此文件具有以下权限:rw-rw ----所以使用文件管理器有了root权限,我将rw-rw ----改为rwxrwxrwx,所有工作都正常(在这种模式下,我可以设置cpu频率,使用rw-rw ----权限我无法做到这一点)。我用于设置时钟的代码是这样的如何使用Java代码设置rwxrwxrwx权限?

public static boolean setClock(String filePath, String value) { 
    try { 
     fileWriter = new FileWriter(filePath); 
     fileWriter.write(value); 
     fileWriter.close(); 
    } catch (IOException e) { 
    // TODO Auto-generated catch block 
     e.printStackTrace(); 
     return false; 
    } 
    return true; 
} 

现在的问题是:如何设置文件的权限代码?我怎样才能为文件scaling_max_freq设置rwxrwxrwx?提前致谢。

回答

0

不能使用Java 6

您可以使用Java 7:

Files.setPosixAttributes(path, EnumSet.allOf(PosixFilePermission.class)); 

现在的问题是为什么。你通常不应该这样做。尤其是在一个sysfs文件上。

+0

不工作(没有设置权限)。其他方案? – user3382240

+0

我的猜测是它根本无法在sysfs文件上运行... – fge

0

您可以尝试使用Runtime,但正如fge所述,您可能无法在文件系统上设置权限。