본문 바로가기

나의 창고/JAVA

JAVA ClassLoader

처음에 멋도 모르고 자바 프로그램을 만들다가 만들다 보니 환경 변수를 하드 코딩 해버렸다. ㅡㅡ;

제길... 그러면 환경이 바뀔때 마다 프로그램 코드를 새로 수정해야 한다는...

이런 무식한 방법이..

암튼 이래저래 알게된 ClassLoader

java.util.Properties 속성을 이용해서

.Properties  파일을 만들어 환경 변수를 입력하고 ClassLoader로 읽어 들일 수 있다는 말씀

예로 들면 test.Properties 파일을 만들고

이 내용은 일단 요렇게
name W.C.
color white

이렇게 작성하고 저장 한다음!

그 환경 파일을 실행 파일을 만드셨다면 .jar파일이 있는 같은 폴더에 복사

아니면 bin폴더에 복사!

이제 코딩을 해보면

try
{
Properties env = new Properties();
ClassLoader cl;
cl = Thread.currentThread().getContextClassLoader();
            if( cl == null )
                cl = ClassLoader.getSystemClassLoader();

URL url = cl.getResource("");
//여기서 괄호 안에 url을 지정해 주면 지정한 폴더에 Properties파일을 복사해야 합니다.

FileInputStream fis = new FileInputStream(url.getPath()+"\\test.Properties");
            
env.load(new java.io.BufferedInputStream(fis));
           
String name=env.getProperty("name");

String color = env.getProperty("color");
.....

요렇게 하면 환경변수에 있는 값들을 불러 올 수 있죠