总磁盘空间JDK 1.4

时间:2013-07-01 15:27:12

标签: java filesystems java1.4

有没有办法让我知道使用JDK 1.4的硬盘总空间? Apache commons不提供类似的功能。请记住,我需要在JDK 1.4应用程序中使用它。

非常感谢。

更新 我曾尝试使用Sigar,但它与JDK 1.4.2_08不兼容。我下载了Sigar的源代码,以便用我的Java版本构建它,但是我无法解析build.xml中引用的依赖项。

3 个答案:

答案 0 :(得分:0)

鉴于File磁盘空间方法仅在Java 6中添加,我怀疑您唯一的选择是调用特定于操作系统的二进制文件,例如。

df -k /

(对于Linux)

实施此类解决方案所需的工作量可能更好地将您的应用程序迁移到最近的JDK / JRE(您可能有一些我不知道的限制,但是,所以如果是的话请忽略!)

答案 1 :(得分:0)

我对Windows系统并不熟悉,但对于linux,您可能会获得当前Runtime并创建将执行系统命令的新进程。

Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("df -h");

您可以从输入流中获取命令输出,然后解析输出以确定磁盘空间

BufferedReader br = new BufferedReader(new InputStreamReader(proc.getInputStream()));

确保等待进程退出并控制进程退出值。命令执行成功时,Linux命令返回0。

int procReturn = proc.waitFor();

答案 2 :(得分:0)

最后,我得到了我需要的Sigar 1.6.2,它适用于我的Java版本。我使用以下代码行得到了我需要的东西:

System.out.println("Disk usage on moint point drive / is "+sigar.getFileSystemUsage("/root"));

<强>输出:

Disk usage on moint point drive / is  {DiskQueue=-1.0, DiskReadBytes=0, DiskWriteBytes=0, Free=2198724, DiskWrites=0, UsePercent=0.71, DiskReads=0, Files=425152, Used=4489992, Avail=1858952, FreeFiles=251740, DiskServiceTime=-1.0, Total=6688716}
Finished