Java에서 시스템 변수 값을 얻으려면 어떻게해야합니까? 에있는 시스템 변수 값을

에있는 시스템 변수 값을 얻는 방법

MyComputer -> Properties -> Advanced -> Environment Variables -> System Variables

자바?

편집하다

나는 System.getenv()방법 을 사용했다 .

주면 인쇄 가치입니다

System.out.println(System.getenv("JAVA_HOME"));

null내가 만든 시스템 변수에 대해 동일하게 시도하면 값 이 표시 됩니다.

System.out.println(System.getenv("DBE"));


답변

System.getenv(String)읽을 변수의 이름을 전달 하여 메소드를 사용하십시오 .


답변

명확히하기 위해 시스템 변수는 환경 변수와 동일합니다. 사용자 환경 변수는 사용자별로 설정되며 다른 사용자가 로그인 할 때마다 다릅니다. 시스템 전체 환경 변수는 사용자가 로그온 한 내용에 관계없이 동일합니다.

Java에서 시스템 전체 변수 또는 사용자 변수의 현재 값에 액세스하려면 아래를 참조하십시오.

String javaHome = System.getenv("JAVA_HOME");

환경 변수에 대한 자세한 내용은이 위키 백과 페이지를 참조하십시오 .

또한 다음을 수행하여 Java를 호출하기 전에 읽으려는 환경 변수가 올바르게 설정되어 있는지 확인하십시오.

echo %MYENVVAR%

환경 변수의 값이 표시되어야합니다. 그렇지 않으면 셸 (DOS)을 다시 열거 나 로그 오프했다가 다시 로그온해야합니다.


답변

시스템 / 환경 속성을 가져올 때 몇 가지 세부 정보가 있습니다.

처음 System.getenv(String)에는 길을 잃었을 때 소개되었고 더 이상 사용되지 않습니다. 지원 중단 (어리석게도 IHMO)은 JSE 1.4 까지 계속 진행 되었습니다 .

그것은있어 JSE 5 재 도입 .

이들은 Windows의 환경 변수 패널을 사용하여 설정됩니다. 현재 VM이 종료되고 CMD.exe 인스턴스가 종료 될 때까지 변수의 변경 사항이 적용되지 않을 수 있습니다.

환경 속성과 달리 Java에는 Java 시스템 속성도 있습니다 System.getProperties(). 이러한 변수는 일련의 명령 줄 인수를 사용하여 VM을 시작할 때 초기화 될 수 있습니다 . 예를 들어 속성 ​​값 과-Dname=valuemaxInMemorypagingDirectory 아래 명령에서 설정됩니다.

C : \> java.exe -DmaxInMemory = 100M -DpagingDirectory = c : \ temp -jar myApp.jar

이러한 속성은 보안 정책 제한을 제외하고 런타임에 수정할 수 있습니다.


답변

실제로 변수를 설정하거나 설정하지 않을 수 있으므로 Java 8 이상에서는 nullable 값을 Optional객체 로 래핑해야 합니다. 다음 예제에서 변수를 얻으려고 시도합니다. ENV_VAR1존재하지 않는 경우 사용자 지정 예외를 발생시켜 경고 할 수 있습니다.

String ENV_VAR1 = Optional.ofNullable(System.getenv("ENV_VAR1")).orElseThrow(
  () -> new CustomException("ENV_VAR1 is not set in the environment"));

답변

구글은 getenv () 를 확인하라고 말합니다 :

현재 시스템 환경의 수정 불가능한 문자열 맵보기를 리턴합니다.

그러나 시스템 변수가 환경 변수와 어떻게 다른지 잘 모르겠으므로 명확하게 설명하면 더 도울 수 있습니다.


답변

환경 변수를 설정 한 후 재부팅을 시도 했습니까?

Windows는 어떤 종류의 캐시에서 환경 변수를 유지하는 것으로 보이며 재부팅하는 것이 그것을 새로 고치는 한 가지 방법입니다. 확실하지 않지만 다른 방법이있을 수 있지만 변수 값을 너무 자주 변경하지 않으면 충분할 수 있습니다.


답변

위의 sombody에서 언급했듯이 이클립스를 다시 시작하면 사용자 정의 환경 변수가 효과적이었습니다. Eclipse IDE를 다시 시작한 후 System.getenv()내 환경 변수를 선택합니다.