Programming 기초/Java

[Java] 직접 컴파일

뭉제 2023. 2. 20. 16:58
목차
1. 실행환경
2. 컴파일과 실행
3. 라이브러리 사용하는 프로그램 컴파일 
4. 아규먼트 입력하는 프로그램 컴파일 

 

 

이클립스가 없어도 자바 파일을 직접 컴파일하고 실행할 수 있다.

 

실행환경 확인하기(Windows 11 기준)


직접 컴파일을 하기 위해서는 자바의 설치 경로를 알아야 한다.

 

1) 터미널 열기 

· 윈도우 키+R: 실행 창 켜기 -> cmd 입력해 명령 프롬프트 실행

* [검색]에서 cmd 입력해도 됨

 

 

2) javac 확인

·  javac: 자바 컴파일러

·  javac의 위치 -> 자바의 설치 경로\bin\javac.exe

  ex) C:\Program Files\Java\jdk1.8.0_201\bin\javac.exe

·  cmd 창에 javac를 입력하면 javac 명령어의 사용 방법이 출력된다.

 

※ 다음과 같은 오류가 발생할 때

-> 현재 위치에 실행하려는 파일이 존재하지 않으면 에러 발생

-> 파일이 존재하는 위치로 이동해야 한다.

 

** javac만 입력해도 실행되게 할 수 있을까?

-> 환경 변수에 javac의 경로를 설정하면 된다.

 

 

3) 환경 변수 경로 확인

환경 변수 Path를 설정하면 실행 파일이 있는 해당 폴더가 아니라도 현재 위치에서 바로 명령을 실행할 수 있다.

환경 변수(environment variable)

· 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는, 동적인 값들의 모임

· 실행 환경을 설정하기 위한 변수

· OS 상에서 동작하는 응용 SW가 참조하기 위한 설정을 기록(시스템의 실행파일이 있는 디렉토리의 지정 등)

 

[환경 변수 설정]

· 윈도우 탐색기에서 내 PC 항목을 오른쪽 버튼으로 클릭 -> 속성 클릭

 

· 고급 시스템 설정 클릭 

· 환경 변수 클릭 -> Path 더블 클릭 -> 새로 만들기 클릭

· javac의 경로(자바 설치 경로\bin) 입력

 

Path

· 디렉토리 경로의 목록

· 운영체제가 명령행 또는 터미널 창에서 필요한 실행파일을 찾는데 사용하는 시스템 변수

 

=> 사용자가 전체 경로를 지정하지 않고 명령을 입력하면,

     운영체제는 Path 목록을 확인해 해당 명령어가 경로에 속하는지 확인한다.

 

=> Path에 javac의 경로가 입력되어 있으면 cmd 창에서 javac 명령어를 바로 이용할 수 있다.

 

 

컴파일과 실행하기


이제 자바 파일을 직접 컴파일 해보자.

 

1) 프로젝트 디렉토리로 이동하기

· cd: 디렉토리 이동 -> cd 자바 파일이 있는 위치

· dir: 디렉토리에 있는 파일과 하위 디렉토리 목록을 보여준다.

 

 

2) 자바 파일 컴파일하기

· javac 파일명.java

- dir을 입력해, Program.class가 생성된 것을 확인 

 

 

3) 실행하기

· java 파일명

· 파일명 뒤에 .class는 붙이지 않는다.

 

 

라이브러리를 사용하는 프로그램 컴파일하기


외부 라이브러리 객체들을 사용하는 프로그램도 직접 컴파일해보자.

 

OkJavaGoInHome.java를 컴파일할 때

-> import 구문으로 OkJavaGoInHome가 있는 폴더의 org.opentutorials.iot를 사용하고 있다.

-> 자동적으로 org.opentutorials.iot의 Elevator, Lighiting, Security 클래스들도 컴파일한다.

 

lib 폴더를 새로 만들어서 org 폴더를 그 안으로 이동시켰다.

-> org.opentutorials.iot 패키지는 lib 라이브러리의 일부가 되었다.

-> 다시 컴파일을 해보면 에러가 발생한다.

 

 

1) 외부 라이브러리도 포함해서 컴파일하기

· javac 명령어의 옵션 중 -classpath(-cp)를 이용해 외부 라이브러리를 함께 지정

· javac -classpath ".;라이브러리명" 파일.java (-class-path는 -cp로 줄여서 표현 가능)

· javac -cp ".;라이브러리명" 파일.java 

· 세미콜론(;): 구분자

· -cp ".;lib": 자바 파일이 있는 현재 폴더(.)와 lib 폴더에서 필요한 자바 파일들을 컴파일

 

 

2) 외부 라이브러리도 포함해서 실행하기

· java -cp ".;라이브러리명 파일명

 

 

아규먼트를 입력하는 프로그램 컴파일하기


cmd 창에서 아규먼트를 입력하여 프로그램을 실행해 보자.

 

1) 자바 파일 컴파일하기 

 

 

2) 실행하기

· 실행할 클래스 파일 이름 다음에 아규먼트를 입력

· java 파일명 "아규먼트" ...