에있는 시스템 변수 값을 얻는 방법
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=value
maxInMemory
pagingDirectory
아래 명령에서 설정됩니다.
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()
내 환경 변수를 선택합니다.