java获取linux磁盘使用率
时间: 2023-10-18 07:16:01 浏览: 70
可以使用Java的Runtime类和Process类来执行Linux系统命令,从而获取磁盘使用率。具体代码如下:
```java
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class DiskUsage {
public static void main(String[] args) {
try {
// 执行df命令获取磁盘使用情况
Process p = Runtime.getRuntime().exec("df");
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while ((line = input.readLine()) != null) {
// 找到磁盘使用率所在的行
if (line.contains("/dev/sda")) {
// 将多个空格替换为单个空格,便于后续按空格分割
line = line.replaceAll("\\s+", " ");
// 按空格分割行数据
String[] parts = line.split(" ");
// 获取总容量、已用容量和可用容量,单位为1k块
int total = Integer.parseInt(parts[1]);
int used = Integer.parseInt(parts[2]);
int available = Integer.parseInt(parts[3]);
// 计算磁盘使用率
double usage = (double) used / total * 100;
// 输出磁盘使用率
System.out.println("Disk usage: " + usage + "%");
break;
}
}
input.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
需要注意的是,上述代码中假设/dev/sda是要监控的磁盘。如果需要监控其他磁盘,需要修改代码中的设备名。