2013-08-29 1 views
0

Одно из наших приложений основано на наличии переменной окружения, устанавливаемой нашей установкой сервера. После установки сервера я могу подтвердить наличие этой переменной, используя диалог «Переменные среды». Однако, когда клиентское приложение выполняется, вызовы команды set и метод Java System.getenv() опускают эту переменную, все остальные присутствуют. Интересно, что эта ошибка чтения конкретной переменной окружения происходит только на Windows 7 64-bit machine, на Windows XP 32-bit этого не происходит. Тот же код на 32-битной машине возвращает переменную среды, установленную нашей установкой сервера. Я не уверен, что здесь играет роль между Windows 7 и Windows XP. Есть ли у кого-нибудь какие-либо предложения о том, как подойти к этой проблеме?Переменная окружения не отображается при выполнении команды set

+0

'getEnv' возвращает основанную на регистре« карту »на всех платформах. BTW, каков результат 'System.getProperties()'? Имеется ли переменная env, которую вы ищете? –

+0

@ Ravinder это не так. Я полагаю, потому что мой не является системным свойством? –

ответ

1

Оказывается, и я не знаю, что это, Windows 7 имеет две cmd.exe команды - один для 32-битных и один для 64-битной среде. Когда я запускал cmd.exe для 32-битной среды, я не видел свою переменную, но когда я запускал cmd.exe для 64-битной среды, переменная была там.

0

Несколько вещей, чтобы проверить

1), что происходит, когда вы набираете echo %VARNAME% это, вероятно, не слишком далеко от того, что делает за кулисами Java.

2) Является ли это системной переменной окружения или для пользователя? Это не должно иметь значения, но может быть

3) Можете ли вы разместить свой код. Ниже снипп отлично работал для меня, это работает для вас?

String path = System.getenv("PATH");

+0

1) Выход не выводится, и когда я выполняю команду set, моя переменная, которая является системной переменной, не печатается. 2) Это системная переменная 3) Это код, который я использую, и оба дают одинаковый результат: p = r.exec ("cmd.exe/c set"); // $ NON-NLS-1 $ Карта getenv = System.getenv(); –

+0

Я добавил ответ на мой вопрос, спасибо за вашу помощь. –

Смежные вопросы