본문 바로가기

개발언어/Java

Java VM Arguments 설정

Java 프로그래밍 시 ${ } 과 같은 형태로 불러오는 변수들이 있다.

해당 변수들은 JRE내부의 JVM(자바 가상 머신)에 설정된 시스템 변수들로 해당 변수가 설정될 시 프로젝트 어디에서든 ${ }과 같은 호출방법으로 해당 변수를 불러올 수 있다.

즉, Java Virtrual Machine 에 식별자로 사용되는 값 들이다.

해당 변수들은 각 실행환경 마다 설정 할 수있는 변수들로 IDE 혹은 구동되는 WAS의 레벨에서도 설정이 가능하고 옵션에 따라 여러가지 용도(JVM의 메모리를 설정하는 등)로 사용가능하다.

하지만 오늘 설명할 옵션은 -D 옵션으로 해당 옵션으로  IBM Knowledge Center의 설명에 따르면 시스템 등록전보 변수를 이름/값 쌍으로 설정하여 사용 가능하다.

One approach to tagging is to use the JVM -D option. The -D option lets you set a system property variable as a name/value pair.
-IBM Knowledge Center

해당 옵션을 사용하여 식별자를 적용하는 방법은 크게 2가지가 있는데,

첫 번째 IDE 설정


 IDE의 설정 파일에서 설정하는 방법으로 이클립스의 경우 .ini 파일에 설정해주는 방법이다.

해당 파일에서 공백 혹은 개행으로 식별자를 구분해준뒤 -D 의 뒤에 이름과 값을 쌍으로 붙여서 설정한다.

예를 들어서 -DServer.mode=Dev와 같은식으로 기입한다.

* 이 방식은 이클립스 환경에서 실행되는 모든 프로젝트에 사용가능며 실행되는 환경이 이클립스가 아니라면  


두 번째 실행 환경에서 설정


두 번째, 각각 실행 환경에서 설정해주는 방법이다. 이는 WAS 같이 프로젝트가 구동될 환경에 설정해 주는 방법으로 마찬가지로 이클립스에 올린 서버의 경우 [Server] 탭에서 설정을 원하는 탭으로 이동


와 같은 화면이 나타나면 [Open launch configuration]으로 들어간 후 


위 팝업이 나타나면 [Arguments] 탭의 [VM arguments]에 설정하고자 하는 값을 기입해주면 된다.

마찬가지로 기입하는 방식은 -DServer.mode=Dev 와 같은식으로 기입한다.



마지막으로 사용을 위해서는 일반적으로 프로젝트 내에서 

${Server.mode} 와 같이 사용하면 해당 값이 Dev로 치환되어 사용된다(C혹은 C++의 #define 같은 전처리와 조금은 유사하다).

* -D 옵션 외에도 -X, -XX등의 옵션들이 있다. 각 옵션은 용도에 따라 표준, 비표준, 개발등 용도가 다양하니 각 용도를 찾아보고 적절히 사용하면 된다.