Переменная окружения не отображается при выполнении команды set
Одно из наших приложений основано на существовании переменной среды, которая устанавливается нашей установкой сервера. После установки сервера я могу подтвердить наличие этой переменной с помощью диалога "Переменные среды". Тем не менее, когда клиентское приложение выполняется, вызывает для установки команды и Java System.getenv()
Метод опускаю эту переменную, все остальные присутствуют. Интересно то, что эта ошибка чтения определенной переменной среды происходит только на Windows 7 64-bit machine
на Windows XP 32-bit
этого не происходит Этот же код на 32-битной машине возвращает переменную окружения, установленную нашим сервером. Я не уверен, если разница между Windows 7
а также Windows XP
играет роль здесь. У кого-нибудь есть какие-либо предложения о том, как подойти к этому вопросу?
2 ответа
Оказывается, и я не знал этого, в Windows 7 есть две команды cmd.exe - одна для 32-битной и одна для 64-битной среды. Когда я запускал cmd.exe для 32-битной среды, я не видел свою переменную, но когда я запускал cmd.exe для 64-битной среды, эта переменная была там.
Пару вещей, чтобы проверить
1) что происходит при вводе echo %VARNAME%
скорее всего, это не слишком далеко от того, что делает Java за кулисами.
2) Это общесистемная переменная среды или для каждого пользователя? Это не должно иметь значение, но это может
3) Можете ли вы опубликовать свой код. Приведенный ниже фрагмент кода работал нормально для меня, это работает для вас?
String path = System.getenv("PATH");