【发布时间】:2015-12-11 10:24:08
【问题描述】:
在Java中是否可以通过shell命令获取文件的路径?
例如,当我在 Windows 命令提示符下键入 php -v 时,它会知道我指的是 C:\php\php.exe(对于我自己的计算机),因为我将它添加到系统 Path 变量中。是否可以在 Java 中做同样的事情?
我知道你可以从Java中获取Path环境变量并使用String.split(";")进行解析,但不知道有没有更直接的方法?
【问题讨论】:
-
我不建议这样做,但您可以在 Linux 上调用本机命令,如
which或在 Windows 上调用where.exe。恕我直言,解析PATH变量是一个更简洁的选择。 -
也许通过使用
jmx? bean 可能会暴露这一点,但这只是一个想法。扫描路径不是一个好主意,因为尽管路径上有一个 php,但可以直接调用另一个 php。 -
这个问题已经回答了here、here和here。我可能错过了一些。您可能想查看 this answer 以获得仅限 Windows 的解决方案
-
@pgmann 我说的是系统
$PATH环境变量,而不是java home。所以,基本上我想在不调用命令的情况下以编程方式获得像@Amaud 所述的输出(where/which)。不过我之前不知道那个命令。