【问题标题】:Total Disk Space JDK 1.4总磁盘空间 JDK 1.4
【发布时间】:2013-07-01 15:27:12
【问题描述】:

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

非常感谢。

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

【问题讨论】:

  • 右键文件夹查看大小,是你要的吗?
  • 没有。这不是他想要的
  • Java 1.4 是古老的。仍然使用它是维护开发 安全的噩梦。这至少是升级的 3 个主要理由。 每次告诉你的老板你不得不做一些丑陋的黑客,因为你仍在使用 11 年前发布的 Java 版本(即使是 Java 5已经 9 岁了!)
  • 我们仍在使用它,因为我们有一些具有特殊 Java 版本的嵌入式硬件(处理器基于 ARM)。我们需要为较新版本的 Java 购买许可证,这在现在是不可行的。

标签: java filesystems java1.4


【解决方案1】:

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

df -k /

(适用于 Linux)

您需要花费大量精力来实施这样的解决方案可能最好将您的应用程序迁移到最近的 JDK/JRE(不过,您可能有一些我不知道的限制,所以请忽略!)

【讨论】:

  • 我已经准备了一个shell脚本来做这件事:df -H -P /root | grep -vE '^文件系统|tmpfs|cdrom' | awk '{ print $5 " " $1 }' 问题是上面的结果在不同的硬件/发行版之间不一致...
  • @MouhammedSoueidane - 要么升级到 Java 6/7 ...要么承担处理来自外部命令的不一致结果的成本/痛苦。
【解决方案2】:

我对 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();

【讨论】:

  • 我已经准备了一个shell脚本来做这件事:df -H -P /root | grep -vE '^文件系统|tmpfs|cdrom' | awk '{ print $5 " " $1 }' 问题是上面的结果在不同的硬件/发行版之间不一致...
  • 不要使用脚本来抓取输出的特定部分。获取阅读器对象中的所有输出“df -h”。然后在java中解析它。 Java 有更多解析文本的选项。
【解决方案3】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-12
    • 2020-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 2014-11-29
    • 1970-01-01
    相关资源
    最近更新 更多