Java - 环境PATH变量在使用Process时不包括/ usr / local / bin

时间:2013-05-23 09:15:25

标签: java

在我的Java应用程序中,我想用Process类执行python脚本。这个python脚本需要执行svn命令。似乎我的java应用程序中的PATH变量不包含/usr/local/bin。我用自制软件安装了SVN 1.7.9,它位于/ usr / local / bin中。在/usr/bin文件夹中,xcode安装了另一个svn,其版本为1.6.x.这导致了一个严重的问题:当我在Java应用程序中执行python脚本时,该脚本然后在/ usr / bin中执行svn,版本为1.6.x.此版本太旧,无法管理我的工作副本。

有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

在启动(父)Java应用程序之前设置PATH环境变量,或使用ProcessBuilder。后者允许您通过ProcessBuilder.environment()方法返回的Map对象控制子进程环境将包含的内容。

(但请注意,一旦启动,您通常无法更改子进程环境的内容...)