티스토리 뷰

SW개발

자바 환경변수 가져오기 등

개소왕 2018. 6. 6. 15:38

* 개요

WAS에서 사용할 디렉토리 명을 하드코딩 하지 않고

환경 변수로 지정해서 넘겨주고 싶었음



* 환경

Java 8

Ubuntu 14.04 (16.04  함께 테스트)


* System.getenv("변수명");

대부분의 문서에서 환경변수 지정하면 읽어올 수 있다고 하는데...

https://stackoverflow.com/questions/29782467/system-getenv-returns-null-when-the-environment-variable-exists?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa

동작 안 함.

-  다음 파일 중 하나에...

/home/사용자명/.profile

/home/사용자명/.bash_profile

/etc/bash.bashrc

/etc/environment


- 다음 내용 집어넣고...

export VAR_NAME=BLAH


- source 해당파일 

실행하면 환경변수 설정됨..


- 재부팅, 이클립스 재시작 등 해봤고

export 명령으로 새로 추가한 환경변수  등록되어있는 것도 확인했지만

Java 에선 읽어오지 못했음.


- 실제로 스크립트에 등록된 내용과 System.getenv() 로 가져온 전체 환경변수 목록과는 차이가 있음.


- 2007년 포스트에 Deprecated 됐다고 는 하는데...

http://parankiho.tistory.com/entry/Java-Portability-1-Systemgetenv-%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EC%A7%80-%EB%A7%88%EB%9D%BC


- 이클립스 내에서는 Run Configuration -> Environments(탭) 에서 설정해서 쓸 순 있음.


* System.getProperty("변수명");

- 이클립스 내에서는 Run Configuration -> Arguments에 -DVAR_NAME="BLAH"  추가하면 됨.

- Tomcat 의 경우,  톰캣/conf/catalina.properties 에 추가

(또는 /var/lib/tomcat8/conf/catalina.properties)


* org.apache.commons.configuration.PropertiesConfiguration 사용

String sPath;

sPath = new File(this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath()).getAbsolutePath();

PropertiesConfiguration conf = new PropertiesConfiguration(new File(sPath+"/파일명"));


PropertiesConfiguration conf = new PropertiesConfiguration("파일명");

String s = (String) conf.getProperty("A");


https://www.lesstif.com/pages/viewpage.action?pageId=12943598



공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함