[JAVA] Use Library

2020. 9. 1. 03:59

본 포스팅은 생활코딩님의 유튜브 채널을 참고하였습니다.

 

본 포스팅을 실습하시고 싶다면, 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를 가져와서 쓰고 싶을 때 사용한다.

 

 

import 코드 작성 예시

org, opentutorials, iot와 같은 것들이 위에서 설명한 package이다.

 

그리고 Elevator는 앞에 나열된 package의 안에 존재하는 class이다.

 

Elevator 파일은 .java의 형태일 수도 .class의 형태일 수도 있다.

 

 

 

 

 

| PACKAGE와 .java 파일이 같은 디렉토리에 있을 때 컴파일하는 경우

 

 

 

 

OkJavaGoInHome.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

BELATED ARTICLES

more