gpt4 book ai didi

java - php exec() 不刷新 Path 环境变量

转载 作者:行者123 更新时间:2023-11-30 07:58:23 28 4
gpt4 key购买 nike

我升级了我的 java jvm,他们改变了在 PATH 环境变量中存储 jvm 位置的方式。

它粘着“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 语句之前,您可以将路径添加到路径变量,如下所示

putenv('PATH='.getenv('PATH').'path to java here');  

关于java - php exec() 不刷新 Path 环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32317250/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com