[Java] 시스템 환경변수는 System.getProperty가 아니라 System.getenv로 가져온다

2024. 2. 22. 03:29·JAVA/Application
728x90

🪄 문제점:

ACCESS_KEY와 SECRET_KEY가 컨테이너 환경변수 지정까지는 문제 없이 되어있으나

스프링부트에서 System.getProperty("ACCESS_KEY")로 가져오지 못한다.

 

🪄 해결:

System.getenv()는 JVM이 실행되는 OS의 환경변수를 가져오고,
System.getProperty()는 JAVA 시스템 즉 JVM에서 가져오는 것이다. 다시 말해 JVM에 국한되며, 또 다시말해 플랫폼 독립적이다. 즉 이것은 시스템 환경변수를 가져오는 메서드가 아니다. 환경변수가 Java의 시스템 속성으로서 존재하는 경우만 getProperty()로 가져올 수 있다.

 

그러나 우리 상황에서는 Java의 변수가 아닌 OS의 환경변수를 가져오는 것이기 때문에 System.getenv()를 써야 한다.

 

예시

 

 

 

✨ 의문

jar파일 실행할 때 옵션으로 -Daccess_key 지정해서 VM에 전달하고 getProperty("access_key") 했는데도 왜 안됐지?

stackoverflow에 동일한 문제를 겪으신 분이 있던데, 그거에 대한 답변은 안 달려서 아직 난제!

 

728x90

'JAVA > Application' 카테고리의 다른 글

[Java][Backend] null 반환 리팩터링  (0) 2024.03.08
[Spring] AOP로 편리하게 jwt token 검증하기  (0) 2024.03.02
Spring의 캐싱 기능  (0) 2023.08.27
[자바/스프링] 비즈니스 로직 층 설계  (0) 2023.08.12
[자바/스프링] 데이터 액세스 층 설계  (1) 2023.08.11
'JAVA/Application' 카테고리의 다른 글
  • [Java][Backend] null 반환 리팩터링
  • [Spring] AOP로 편리하게 jwt token 검증하기
  • Spring의 캐싱 기능
  • [자바/스프링] 비즈니스 로직 층 설계
히어로맛쿠키
히어로맛쿠키
  • 히어로맛쿠키
    yeny_lab
    히어로맛쿠키
  • 전체
    오늘
    어제
    • 분류 전체보기 (386)
      • 미분류글 (30)
        • ㅇ (2)
      • JAVA (84)
        • Effective Java (1)
        • Application (21)
      • 컴퓨터구조 & OS (28)
      • 자료구조 + 알고리즘 (43)
      • Database (12)
      • 컴파일러 (10)
      • 수학 (33)
        • 미분방정식 (12)
      • 데이터분석과 머신러닝 (38)
      • 기타 (58)
      • yyeeennyy (25)
  • 블로그 메뉴

    • 링크

    • 공지사항

      • ^o^/♡
    • 인기 글

    • 태그

      혼공단
      사후분석
      input-output
      혼공자
      알고리즘
      혼공머신
      코드업
      한빛미디어
      codeup
      혼공학습단
      R데이터분석
      16비트 컴퓨터
      정렬
      컴퓨터구조
      미분방정식
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.4
    히어로맛쿠키
    [Java] 시스템 환경변수는 System.getProperty가 아니라 System.getenv로 가져온다
    상단으로

    티스토리툴바