Java

2. 자바 명령어 도구(javac, java)

문정훈 2022. 1. 17. 15:44

JDKcmd에서 사용가능한 몇가지 명령 도구를 가지고 있다.

자바 컴파일러 javac, 자바 가상 기계 java 명령어가 있다.

 

<가정>

test 패키지에 Mainclass.java 하나 들어있는 상황이라고 치자 

Mainclass.java 파일에는 hello word를 출력하는 자바 코드가 작성되어 있는데

 

  1. 패키지 선언이 안된 경우 -> default pakage
  2. 패키지 선언이 된 경우 package pac1;

위 두 가지 경우가 있을 수 있다. 



1. 패키지 선언이 안된 경우 컴파일 방법

javac (클래스명).java 으로 컴파일 하고 실행하는 경우 (따로 패키지를 만들지 않는 경우)

 

1) 컴파일

 cd C:\Users\MoonJH\Desktop\comback\src\test
 javac Mainclass.java
 ( 이렇게 하면 C:\Users\MoonJH\Desktop\comback\src\test 폴더에 .java 파일과 클래스 파일이 공존함)


2) 실행

cd C:\Users\MoonJH\Desktop\comback\src
java test.Mainclass
 ( 클래스 파일의 패키지는 새로 만들어지지 않았지만 .java파일이 있는 장소 자체가 test(패키지 폴더) 이기때문에
   위 와 같이 최상위 패키지 폴더 명이 있는 폴더로 이동 후 패키지명까지 입력해 실행해준다)

 


2. 패키지 선언이 되어 있는 경우

 javac -d . (클래스명).java 컴파일 하고 실행하는 경우 (패키지를 만듬)

 

1) 컴파일

 cd C:\Users\MoonJH\Desktop\comback\src\test
 javac -d . Maincalss.java
 (이렇게 하면 C:\Users\MoonJH\Desktop\comback\src\test 폴더에 .java 파일과 test패키지 폴더가 공존함)


2) 실행

cd C:\Users\MoonJH\Desktop\comback\src\test
java test.Mainclass
 (.java 파일은 기존 test파일에 존재하는데 test파일에 클래스의 패키지인 test 폴더를 또 만들고 실행하는 것임)

 


3.
패키지 선언이 되어 있는 경우(절대 경로 지정)

javac -d (절대 경로명) (클래스이름).java로 컴파일 하고 실행하는 경우 (지정 폴더에 패키지를 만듬)

 

1) 컴파일

 cd C:\Users\MoonJH\Desktop\comback\src\test
 javac -d C:\Users\MoonJH\Desktop\comback\bin Mainclass.java
 (이렇게 하면 내가 위에 지정한 폴더에 패키지 폴더와 그 속에 클래스 파일이 만들어짐)

 

2) 실행
cd C:\Users\MoonJH\Desktop\comback\bin
java test.Mainclass

 

 


정리..

3가지 방법은 결국 컴파일 방법이 다른것이고 실행 방법은 모두 똑같음
실행 방법은 결국 메인 메소드가 있는 .class 파일의 최 상위 패키지로 이동 후 java (패키지명).(클래스이름) 이렇게 실행한다.

1. 컴파일 방법1 
패키지를 따로 만들지 않고 .java파일이 있는 곳에 바로 .class파일을 만든다 
2. 컴파일 방법2
패캐지를 만드는데 따로 패키지 경로를 지정하지 않는다 그래서 .java파일에 바로 .class의 최상위 패키지를 만든다. 
java -d . (파일명).java 

3. 컴파일 방법3
방법2에서 . 자리에 최상위 패키지가 들어갈 경로를 지정한다