java — php exec () не обновляет переменную окружения Path

Я обновил 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, у меня возникает проблема.

Я пытаюсь избежать жесткого кодирования пути.

1

Решение

перед оператором exec вы можете добавить путь к переменной пути, например, так

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]