Mac OS:Java未使用完整路径变量[ProcessBuilder]

Mac OS:Java未使用完整路径变量[ProcessBuilder],java,macos,processbuilder,Java,Macos,Processbuilder,我试图使用process builder在Mac OS下从Java运行shell命令。在执行代码时,我得到一个错误,即找不到相应的可执行文件。这显然是path变量的问题,因为完全相同的命令在终端中工作得很好 比较我的系统路径变量和 System.getenv() ,可以看到“/usr/local/bin”缺失,尽管它位于系统路径变量中 有人知道这是为什么吗?如果有,我如何改变它 我还尝试通过绝对路径直接访问相应的可执行文件,但这不起作用,因为可执行文件调用的其他文件仅位于“/usr/loca

我试图使用process builder在Mac OS下从Java运行shell命令。在执行代码时,我得到一个错误,即找不到相应的可执行文件。这显然是path变量的问题,因为完全相同的命令在终端中工作得很好

比较我的系统路径变量和

System.getenv() 
,可以看到“/usr/local/bin”缺失,尽管它位于系统路径变量中

有人知道这是为什么吗?如果有,我如何改变它

我还尝试通过绝对路径直接访问相应的可执行文件,但这不起作用,因为可执行文件调用的其他文件仅位于“/usr/local/bin”中


提前感谢您的时间!:)

与MacOS环境相关的许多问题都有可能解决。实际上,您可以始终使用
ProcessBuilder.environment()
并在显式启动它之前更改PATH环境变量。ProcessBuilder.environment()只更改派生进程的环境,但不更改派生进程本身的环境。您使用完整路径执行。不能像我在文章中所写的那样:(.使用processbuilder将
/usr/local/bin
添加到
PATH
环境变量中,以便程序调用的所有内容都能够在
/usr/local/bin
中找到内容;然后通过绝对路径调用程序。与MacOS环境相关的问题很多,可能存在一些工作异常。)实际上,您可以始终使用
ProcessBuilder.environment()
并在显式启动它之前更改PATH环境变量只更改生成进程的环境,但不更改生成本身。您使用完整的执行路径。不能像我在文章中所写的那样执行:(.您可以使用processbuilder将
/usr/local/bin
添加到
路径
环境变量中,以便程序调用的所有内容都能够在
/usr/local/bin
中找到内容;然后通过绝对路径调用程序。