☕️Java 옵션과 Java 컴파일 옵션
javac 옵션
-cp
: 다른 포스트에서도 소개했듯이 클래스 패스를 설정하는 아주 필수적인 옵션이다-d {디렉토리명}
: 디렉토리에 존재하는 클래스들을 경로를 구분하여 컴파일한다.-deprecation
: deprecated된 클래스에 대한 정보를 포함하여 컴파일한다.-g
: 디버깅과 관련된 정보를 포함한 클래스 파일을 생성한다. 프로파일링 툴 등에서 활용될 수 있다.
java 옵션
표준옵션
- -server, -client처럼 앞에 X가 없는 옵션들은 표준 옵션이다.
주요 옵션
-client
: Client VM을 사용한다. Swing과 같이 UI를 처리할 때 유용하다.-server
: Server VM을 사용한다. 대부분의 시스템에는 이 옵션이 적용된다.-cp {클래스패스} {클래스명}
: 클래스패스 지정과 특정 클래스의 실행을 동시에 할 수 있다.-verbose
: 클래스가 JVM에 로딩되는 정보를 출력한다.-verbosegc
: gc가 발생하는 정보를 출력한다.-version
:-d32, -d64
: 가능하다면 32 / 64 bit 데이터 모델을 사용한다.-D{키값}={값}
: System.getProperties()에서 제공되는 키값들에 대해 값을 설정할 수 있다.
비표준옵션
- -Xms, -Xmx처럼 앞에 X가 붙은 옵션들은 비표준옵션이다. 이클립스 등에서 최소 힙크기 등을 설정할때 본적이 있을 것이다. (뭔지도 모르고 서치해서 썼었지만)
-XX:+
나-XX:-
와 같은 옵션들도 존재한다. +, -에 따라 옵션을 켜고 끄는 형태이다.
주요 옵션
-Xms{크기}
: JVM의 시작 크기를 지정한다. -Xms512m과 같은 형태로 사용한다.-Xmx{크기}
: JVM의 최대 크기를 지정한다.-Xss{크기}
: Thread의 Stack 크기를 지정한다. Stack Overflow가 발생한다면 해결을 위해 사용할 수도 있다.
[1] 이상민, 19장 “자바의 역사와 JVM”, 자바의神 2nd Edition