일반 Java 실행 옵션들

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

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

 

 

 

 

 

 

 

 

 

번호 제목 글쓴이 날짜 조회 수
251 Calendar, Date, Format, java.time 패키지 황제낙엽 2017.10.31 108
250 날짜, 시간 문자열 값으로 Date 오브젝트로 만들기 >> SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.US) 황제낙엽 2017.10.31 1516
249 시스템 속성(System Property) 클래스를 이용하여 jni 라이브러리 사용하기 황제낙엽 2017.09.22 37
» Java 실행 옵션들 황제낙엽 2017.08.23 3367
247 HttpsURLConnection 을 사용한 SSL서버 접속 file 황제낙엽 2017.08.02 231
246 서버구동시 주기적으로 동작을 수행하는 스레드를 함께 실행하는 서블릿 황제낙엽 2017.08.02 131
245 HttpURLConnection 사용 샘플( JSP , SERVLET ) 황제낙엽 2017.08.01 254
244 HttpURLConnection 사용하기 황제낙엽 2017.08.01 393
243 [HttpURLConnection] POST로 파라미터 넘기기 황제낙엽 2017.08.01 507
242 HttpURLConnection POST 방식 사용하기 황제낙엽 2017.08.01 370
241 Runtime 클래스를 이용한 윈도우 프로그램 실행 예제 황제낙엽 2017.08.01 113
240 JSON Util (JSON 을 다루기 위해 직접 작성한 유틸 클래스) file 황제낙엽 2017.07.10 461
239 자바 리플렉션(Java Reflection) 간단한 설명 및 사용방법 정리 file 황제낙엽 2017.07.10 135
238 Generate random numbers (Random.java) 황제낙엽 2017.07.02 490
237 쓰레드(Thread)를 중간에 종료시키는 방법 황제낙엽 2017.03.15 5127
236 JSON 라이브러리(API) 종류 황제낙엽 2017.01.18 404
235 [JSON기초04] 자바 JSON 데이터에서 KEY 값 알아오기 (TIP) 황제낙엽 2017.01.18 6641
234 [JSON기초03] 자바 JSON Google Simple JSON을 이용한 간단한 JSON DATA 파싱 황제낙엽 2017.01.18 566
233 [JSON기초02] 자바 JSON Google Simple JSON을 이용한 간단한 JSON DATA 생성 황제낙엽 2017.01.18 111
232 [JSON기초01] JSON이란? XML이란? JSON 개념, XML 개념 설명 황제낙엽 2017.01.18 408