2013-08-29 3 views
0

우리 응용 프로그램 중 하나는 서버 설치로 설정되는 환경 변수의 존재에 의존합니다. 서버를 설치 한 후 '환경 변수'대화 상자를 사용하여이 변수의 존재를 확인할 수 있습니다. 그러나 클라이언트 응용 프로그램이 실행될 때 set 명령을 호출하고 Java의 System.getenv() 메서드를 호출하면이 변수가 생략되고 다른 모든 변수가 나타납니다. 흥미로운 점은 특정 환경 변수를 읽지 못하면 Windows 7 64-bit machine에서만 발생하고 Windows XP 32-bit에서 발생하지 않는다는 것입니다. 32 비트 시스템의 동일한 코드는 서버 설치시 환경 변수를 반환합니다. Windows 7Windows XP의 차이가 여기에 있는지 잘 모르겠습니다. 누구든지이 문제에 접근하는 방법에 대한 제안이 있습니까?set 명령을 실행할 때 환경 변수가 표시되지 않습니다.

+0

'getEnv'는 모든 플랫폼에서 대소 문자 구분을 기반으로'map'을 반환합니다. BTW,'System.getProperties()'의 결과는 무엇입니까? does에는 검색중인 env 변수가 포함되어 있습니까? –

+0

@Ravinder 그렇지 않습니다. 내 물건이 시스템 속성이 아니기 때문에 나는 생각하니? –

답변

1

윈도우 7이 cmd.exe를 명령이 있습니다, 그것은 밝혀, 나는 이것을 알고하지 않았다. 32 비트 환경에서 cmd.exe를 실행하면 변수가 표시되지 않지만 64 비트 환경에서 cmd.exe를 실행하면 해당 변수가 나타납니다.

0

몇 가지 당신이 echo %VARNAME%를 입력 할 때 너무 멀리 자바가 무대 뒤에서 무엇을하고 있는지의 가능성이 발생하는)

1을 확인합니다.

2) 시스템 전체 환경 변수입니까, 아니면 사용자 별 환경 변수입니까? 차이를 만들어서는 안되지만 다를 수 있습니다.

3) 코드를 게시 할 수 있습니까? 아래의 snippit이 나에게 잘 돌아갔다. 32 비트 및 64 비트 환경을위한 한 -

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

+0

1) 출력이 출력되지 않고 set 명령을 실행할 때 시스템 변수 인 my variable이 인쇄되지 않습니다. 2) 이것은 시스템 변수 입니다. 3)이 코드는 제가 사용하고 있고 동일한 결과를내는 코드입니다 : p = r.exec ("cmd.exe/c set"); // $ NON-NLS-1 $ Map getenv = System.getenv(); –

+0

내 질문에 대한 답변을 추가했습니다. 도움을 주셔서 감사합니다. –

관련 문제