[JAVA] Use Library
본 포스팅은 생활코딩님의 유튜브 채널을 참고하였습니다.
본 포스팅을 실습하시고 싶다면, youtu.be/uj2mOvjhj4o 로 접속하여 생활코딩님의 github에 있는 소스코드를 다운하여 따라 하시면 됩니다.
생활코딩님, 감사합니다.
| CONTENTS
- PACKAGE
- IMPORT
- PACKAGE와 .java 파일이 같은 디렉토리에 있을 때 컴파일하는 경우
- PACKAGE와 .java 파일이 다른 디렉토리에 있을 때 컴파일하는 경우
- PACKAGE와 .java 파일이 다른 디렉토리에 있을 때 컴파일할 수 있게 하는 방법
| PACKAGE
PACKAGE : 디렉토리 (폴더) 와 비슷한 개념이다.
java에서는 import로 다른 class를 불러다가 사용할 수 있는데, 사용하는 class가 존재하는 package들을 알아야 한다.
| IMPORT
IMPORT : import는 자바 프로그래밍할 때 다른 package에 있는 class를 가져와서 쓰고 싶을 때 사용한다.
org, opentutorials, iot와 같은 것들이 위에서 설명한 package이다.
그리고 Elevator는 앞에 나열된 package의 안에 존재하는 class이다.
Elevator 파일은 .java의 형태일 수도 .class의 형태일 수도 있다.
| PACKAGE와 .java 파일이 같은 디렉토리에 있을 때 컴파일하는 경우
이 소스코드를 컴파일하고 싶다.
그렇다면 import 하는 class의 최상위 package인 org와 컴파일하고 싶은 OkJavaGoInHome.java 가 같은 디렉토리에 존재하는지 확인한다.
개꿀. Programming이라는 디렉토리 안에 org와 OkJavaGoInHome.java가 같이 존재한다.
그럼 javac 명령어를 이용해 컴파일해 보자.
javac에 대한 설명인데 절대 보지 말자. -> freeservice-son-of-programming.tistory.com/11
완벽.
Elevator, Lighting, OnOff, Security 그리고 OK~ .java 파일들이 컴파일 되어 .class가 생성되었다.
여기서 우리는 두 가지를 알 수 있다.
첫 번째, .java파일을 컴파일 하고 싶으면 .java와 import 할 class의 최상위 package가 같은 디렉토리에 있어야 한다.
두 번째, import 할 class의 .class파일이 없고 .java파일만 존재해도 컴파일러가 알아서 .class를 생성해 준 후 import 해 준다는 사실을.
고맙다 javac.
| PACKAGE와 .java 파일이 다른 디렉토리에 있을 때 컴파일하는 경우
자 그렇다면 .java와 package가 다른 디렉토리에 있다면 어떻게 될까?
villian 디렉토리를 생성하여 org를 그 안에 넣어주었다.
이로서 Ok~.java 녀석과 org가 다른 디렉토리에 위치한다.
그럼 이제 다시 javac로 컴파일 하자.
암담하다. javac가 org를 찾지 못하여 컴파일할 수가 없다.
이로서 우리는 한 가지를 더 알게 되었다.
.java와 import한 class의 최상위 package가 다른 디렉토리에 존재한다면 컴파일을 못한다는 사실을.
| PACKAGE와 .java 파일이 다른 디렉토리에 있을 때 컴파일할 수 있게 하는 방법
그렇다면 둘이 다른 디렉토리에 있으면 컴파일이 불가능할까?
울지 마라. 늘 그렇듯 우리는 답을 찾는다. 인간은 강하다.
--class -path 라는 명령어가 있다. -cp 로 짧게도 사용할 수 있는 이 녀석이 우리의 구세주다.
이 녀석과 ".:villain(최상위 package가 위치한 디렉토리)"를 입력하면 javac는 찾을 수 있는 힘이 생긴다.
우리의 javac가 해냈다.
여기서 저 문장을 조금만 더 자세하게 설명한다.
javac와 -cp는 생략하고, " "안의 .과 :을 살펴보자.
이 .은 현재 디렉토리를 뜻 한다. (Programming)
javac는 Programming 디렉토리 안의 OkJavaGoInHome.java도 컴파일해야 하기 때문에, 저 .을 꼭! 적어야한다.
.이 없다면 javac는 현재 디렉토리를 알 수 없다.
: 는 콜론이라고 부르는데, 이 녀석은 "구분자"라고 부른다.
구분자는 그 다음 디렉토리로 이어주는 역할이라고 생각해라.
현재 폴더를 가리키는 .에다가 구분자인 :을 적어주고 villain 디렉토리를 적어주면 javac는 villain 디렉토리에 접근할 수 있다.
그 안의 더 많은 package에 접근하고 싶다면, ".:villain:something" 이런 식으로 적어주면 된다.
아, 그리고 Windows에서는 구분자가 ; 세미콜론이라는 점을 알아두기 바란다. (나는 앱등이다.)
| BYE
이번 포스팅에서 우리는 import한 class의 최상위 package와 .java가 같은 디렉토리 안에 있는 경우, 다른 디렉토리에 있는 경우.
두 가지 경우에서 컴파일하는 방법을 알아보았다.
우리는 이제 할 수 있다.
할 수 있다. 컴파일.
같이 성장합시다.
'JAVA' 카테고리의 다른 글
[JAVA] Parameter && Argument (0) | 2020.09.01 |
---|---|
[JAVA] Java의 동작원리 (0) | 2020.08.30 |
[JAVA] 터미널로 .java 컴파일하고 실행하는 방법 (0) | 2020.08.27 |