일반 Java 실행 옵션들

황제낙엽 2017.08.23 15:18 조회 수 : 3643

sitelink1 http://includestdio.tistory.com/22 
sitelink2 http://adminid.kr/tomcat/104801 
sitelink3  
sitelink4  
sitelink5  
sitelink6  

기본 사용법

 

1. java [옵션] [클래스 파일] [main 함수에 넘기는 파라미터]

2. java [옵션] -jar hello.jar [main 함수에 넘기는 파라미터]

 

ex) Hello.class 파일을 실행하면서 main함수에 World라는 파라미터를 넘길 때

 

java Hello World

 

 

 

아래는 주로 사용하는 옵션들이다.

 

 

-classpath

 

클래스 패스를 지정한다. (클래스를 찾을 때 사용하는 경로)

 

ex) C:\myClass 폴더를 기준으로 패키지를 찾고 A.class를 실행할 때

 

java -classpath "C:\myClass" A

 

 

환경 변수 CLASSPATH를 사용하는 방법도 있다.

 

ex) set CLASSPATH=".;C:\myClass"

 

 

 

 

-D

 

시스템의 property 값을 설정한다.

복수개의 property 설정시 스페이스로 구분하여 연속 기술하면 된다.

 

ex) UTF-8로 파일을 인코딩해서 HelloWorld 클래스를 실행할 때

 

java -Dfile.encoding=UTF-8 HelloWorld

java -Dprop.a=abcd -Dprop.b=efgh Test

 

 

 

 

-verbose

 

실행 정보를 화면에 출력한다.

 

ex) 로딩되는 클래스들의 정보를 화면에 출력

 

-verbose:class

 

ex) 로딩되는 garbage collection 이벤트를 화면에 출력

 

-verbose:gc

 

 

 

 

-version

 

현재 JVM의 버전 출력

 

ex) java -version

 

 

 

-Xms

 

JVM이 사용가능한 초기 힙사이즈

 

 

 

-Xmx

 

JVM이 사용가능한 최대 힙사이즈

 

ex) 최소 힙사이즈가 512MB이고 최대 힙사이즈를 1024MB로 할당할 때

 

java -Xms 512m -Xmx 1024

 

 

 

 

-XX:PermSize, -XX:MaxPermSize

 

클래스 메타 정보는 -Xmx로 지정되는 메모리 영역이 아닌 MaxPermSize로 지정되는 메모리 영역에 들어간다고 한다.

 

OOM이 발생할 때 한번 쯤 사용을 고려해볼만한 옵션이다.

 

ex) 초기 PermSize가 64MB이고 최대 PermSize를 128MB 할당할 때

 

java -XX:PermSize=64m -XX:MaxPermSize=128m

 

 

 

 

사용법:java <options> <classfiles> <argument> 또는 

          java <options> -jar file.jar <argument>
options: 옵션
classfiles: 호출될 클래스 파일 이름
file.jar: 호출될 jar파일 이름
argument:main함수에 파라미터로 보내질 문자열


예를들어, main함수를 포함하는 Hello.class 파일이 존재할경우,
java Hello 로 프로그램을 실행시킬수 있는데, 확장자인 class는 생략할수 있지만,
대소문자는 구별하므로, 정확하게 기입해야 한다.
java Hello Greeting 처럼 Greeting을 덧붙일경우, main함수에 문자열인자로 Greeting을 보낼수 있다.

 

a) -client:
자바 HotSpot Client VM을 선택한다. (디폴트 값이다)

 

b) -server:
자바 HotSpot Server VM을 선택한다.

 

c) -classpath (-cp):
참조할 클래스 파일 패스를 지정하는데, jar파일, zip파일, 클래스파일의 디렉터리 위치를 기술한다.
각 클래스파일 패스는 콜론(:)을 통해서, 분리시켜 기술한다
자바VM은  자바프로그램을 로딩시, -classpath로 지정된 클래스 패스나, java플래폼이 설치된, 운영체제에서의
환경변수로 지정된, 클래스패스를 통해서, 클래스 파일들을 참조하게 된다.

 

d) -D <property name>=<property value>:
시스템의 property 값을 설정한다.

ex) java -Djava.library.path=. HelloWorld

자바의 시스템 property(속성)중 "java.library.path"값을 "." (현재디렉터리)로 지정해서, HelloWorld 실행시켜라는 의미 이다.

위와같이 자바VM에 지정된 속성을 실행시 -D옵션을 사용해서, 변경, 지정할수 있다.

 

e) -jar 파일이름:

jar파일로 압축되어져 있는 자바 프로그램을 실행시킨다.

클래스 파일이름 대신 jar파일을 사용해서, 압축되어져 있는 자바 프로그램을 실행시킬수 있는데, 위프로그램이 제대로 실행되어지기 위해서, Jar파일안의 manifest라는 텍스트 파일에 Main-Class:classname 같은 형태의 텍스트 라인이 포함되어 있어야 한다.

그리고, 여기에 기술된 classname은 main함수를 포함하고 있는 클래스 이름이 되어야 한다.

 

f) -verbose:

자바프로그램 실행되어지는 정보를 화면에 출력해준다.

-verbose:class

로딩되어지는 각클래스들의 정보를 화면에 출력한다.

-verbose:gc

garbage collection 이벤트를 화면에 출력한다.

-verbose:jni

native 함수들과 다른 자바 native 인터페이스 사용에 대한 정보를 출력한다

 

g) -version:

현재 JVM의 버젼 정보만 출력한다

 

h) -showversion:

현재 JVM의 버젼정보를 출력한다.

java -showversion HelloWolrd

와 같이 자바 프로그램을 실행시키면서, 자바 버젼정보를 출력할수 있다.

 

i) -X

비표준 자바옵션 리스트를 화면에 출력해준다.

 

-Xms, -Xmx 

자바를 구동시, JVM이 사용가능한 최대 메모리 사이즈를 변경합니다.

JVM이 자바프로그램을 구동하기 위해, 초기설정된 메모리사이즈는 64M입니다.

사용방법은 다음과 같습니다

java -Xms <초기힙사이즈> -Xmx <최대힙사이즈>

예를들어, Hello.class 자바 프로그램을 시작시, 256M(메가)의 힙사이즈를 할당하며, 최대 512M의 힙사이즈를 할당받고 싶다면,  다음과같이 합니다.

java -Xms256m -Xmx512m Hello

 

-XX:PermSize,  -XX:MaxPermSize

클래스 메타 정보 메모리 (Xms, Xmx 메모리와 별도로 관리된다.

-XX:PermSize=64m -XX:MaxPermSize=256m

 

 

 

 

 

 

 

 

 

번호 제목 글쓴이 날짜 조회 수
263 JavaMail - 네이버 메일 수신하기(POP3) 황제낙엽 2018.08.20 1616
262 JavaMail - POP3로 메일 읽어오기 - 단순샘플 황제낙엽 2018.08.20 484
261 [HttpURLConnection, HttpsURLConnection] Response 로 받은 데이터가 압축되어 있는 경우(gzip, deflate) 황제낙엽 2018.08.16 695
260 [HttpURLConnection, HttpsURLConnection] 자바 Http / https 의 결과를 주고받을때 세션을 유지 황제낙엽 2018.08.12 554
259 [HttpURLConnection] 자바(Java) URL 접속 및 세션 관리 file 황제낙엽 2018.08.12 552
258 json-rpc 에서 한글 문제 황제낙엽 2018.08.08 511
257 org.apache.commons.io.FilenameUtils (getExtension) 황제낙엽 2018.04.01 1507
256 이미지 파일의 화면사이즈와 포맷(확장자) 구하기 황제낙엽 2018.04.01 774
255 File 을 다루기 위한 유틸 클래스 file 황제낙엽 2018.02.28 425
254 상수의 데이터 타입 황제낙엽 2018.01.26 573
253 Java에서 User-Agent 파써 사용하기 황제낙엽 2017.11.20 734
252 현재 월,일,시간,분,초 등등 가져오기 황제낙엽 2017.11.02 1109
251 Calendar, Date, Format, java.time 패키지 황제낙엽 2017.10.31 416
250 날짜, 시간 문자열 값으로 Date 오브젝트로 만들기 >> SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.US) 황제낙엽 2017.10.31 1881
249 시스템 속성(System Property) 클래스를 이용하여 jni 라이브러리 사용하기 황제낙엽 2017.09.22 359
» Java 실행 옵션들 황제낙엽 2017.08.23 3643
247 HttpsURLConnection 을 사용한 SSL서버 접속 file 황제낙엽 2017.08.02 533
246 서버구동시 주기적으로 동작을 수행하는 스레드를 함께 실행하는 서블릿 황제낙엽 2017.08.02 473
245 HttpURLConnection 사용 샘플( JSP , SERVLET ) 황제낙엽 2017.08.01 696
244 HttpURLConnection 사용하기 황제낙엽 2017.08.01 793