在Java

时间:2015-11-29 15:46:58

标签: java path exec

在Java 1.8程序中,如何在用户的PATH上执行程序?为简单起见,我们假设只需要支持* nix系统。我想做的是:

Runtime.getRuntime().exec("myProgram")

其中myProgram位于用户路径的某个位置。

Runtime.getRuntime().exec(cmd)只能“看到”系统路径上的程序。例如在我的情况下(mac os)/usr/bin:/bin:/usr/sbin:/sbin,但如果myProgram位于/usr/local/bin~/bin,该怎么办?

我试图通过解析Runtime.getRuntime().exec("echo $PATH")的输出来获取用户PATH上的目录,但我只返回字符串“$ PATH”本身,而不是PATH变量的实际内容。

编辑执行System.getenv()只给我PATH=/usr/bin:/bin:/usr/sbin:/sbin,即不是用户的路径。

2 个答案:

答案 0 :(得分:1)

如果您想获得PATH变量的实际内容,可以使用:

System.getenv():
祝你好运!

答案 1 :(得分:0)

String userPath = System.getenv("PATH");

如果它返回一个空字符串,那么在运行java程序之前尝试导出该$ PATH变量。