[英]php exec() not refreshing Path environment variable
我升级了Java jvm,他们更改了将jvm的位置存储在PATH环境变量中的方式。
它粘贴“ C:\\ ProgramData \\ Oracle \\ Java \\ javapath;” 在Path变量的开头。
现在,问题是当我执行exec(“ java blah blah blah”)时,php无法找到新路径。 我懂了
"'java' is not recognized as an internal or external command, operable program or batch file."
仅当我执行完整路径时,它才有效:
exec("c:\My\Path\To\Java\java blah blah blah")
当我执行phpInfo(INFO_ENVIRONMENT)时,它显示了更改之前的Path变量。 它被缓存在某个地方了吗? 我在其他线程中读到,重新启动服务器或重新启动Apache会有所帮助,但似乎不起作用。 我尝试了多次重启。
var_dump($ _ SERVER ['PATH']),var_dump(getenv('PATH'))似乎显示了新路径。 为什么phpInfo中的值会不同? 某处是否有Path变量的单独副本?
我有一个在Windows Vista上测试过的开发环境,但没有这个问题。 在Windows 2008环境中进行测试时,出现了问题。
我试图避免对路径进行硬编码。
在exec语句之前,您可以像这样将路径添加到path变量中
putenv('PATH='.getenv('PATH').'path to java here');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.