티스토리 뷰
* 개요
WAS에서 사용할 디렉토리 명을 하드코딩 하지 않고
환경 변수로 지정해서 넘겨주고 싶었음
* 환경
Java 8
Ubuntu 14.04 (16.04 함께 테스트)
* System.getenv("변수명");
대부분의 문서에서 환경변수 지정하면 읽어올 수 있다고 하는데...
동작 안 함.
- 다음 파일 중 하나에...
/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
'SW개발' 카테고리의 다른 글
Tomcat8 Heap memory size (0) | 2018.06.14 |
---|---|
자바 클래스패스 가져오기 (0) | 2018.06.06 |
Cannot change version of project facet Dynamic Web Module to 2.5 (0) | 2018.05.03 |
Maven Update 후 자바 버전이 바뀌는 현상 해결 (2) | 2018.05.03 |
Eclispe / Could not transfer artifact org.apache.maven.plugins:maven-compiler-plugin:pom:3.5.1 from/to central (0) | 2018.04.29 |