【发布时间】:2015-08-31 18:06:48
【问题描述】:
我升级了我的 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 环境中测试它时,我遇到了问题。
我试图避免对路径进行硬编码。
【问题讨论】:
标签: java php variables path environment