JAVA1 - 12.4 직접 컴파일하고 실행하기 : 라이브러리 사용
cmd
OkJavaGoInHome.java 입력
import org.opentutorials.iot.Elevator;
→ 의미 : org 밑에 opentutorials 밑에 iot 밑에 Elevator를 불러 온 상태. Elevator를 치면 이녀석인 것. OkJavaGoInHome.java와 같은 디렉토리에 있는 org폴더에 opentutorials폴더에 iot폴더 안에 있는 것
- import '불러오다'라는 뜻
- org부터 iot까지 패키지라고 부름
개념정리
Elevator.java를 컴파일하면 Elevator.class파일이 생기고, 이 클래스 파일을 로딩하는 코드가 import org.opentutorials.iot.Elevator; 이것. 이런 절차로 Elevator를 사용할 수 있게 된다
-classpath = -cp
이렇게 다른 라이브러리를 끌어와 쓸 때 필히 경로지정이 필수인데 이 경로가 변경될 경우 로딩시 에러난다.
어떻게 해결할까?
여기서 찾아주세요 하는게 --class-path 또는 -cp
(현재 디렉토리에서도 찾아야 하니 .이라고 치고, 윈도에서는 ;세미콜론으로 구분하고 맥,리눅스에서는 :콜론)
- 새경로 지정 & 컴파일 명령어 : javac -cp ".;폴더명" 파일명
- ex) javac -cp ".;lib" OkJavaGoInHome.java
위의 경우 lib폴더 와 같은 경로에 있으면 찾아지나 lib폴더 밑에있다면 에러뜬다. lib 안에 있다고 명시적으로 컴퓨터한테 알려줘야한다
- java -cp "lib" OkJavaGoInHome : 명시적으로 "lib"이라고 해줘야 lib에서만 찾게됨. 같은 디렉토리에서는 찾지않음
- java -cp ".;lib" OkJavaGoInHome : 현재디렉토리라는 의미의 .;도 추가
※ 소프트웨어는 나 혼자 만드는게 아닌 다른 사람들이 만든 라이브러리들 이용해서 나의 소프트웨어를 만들어가는 것이기에 다른 사람들이 만든 라이브러리 살펴보는 것은 견문을 넓히는 중요한 일
JAVA1 - 12.5 직접 컴파일하고 실행하기 : 입력과 출력
컴파일시 입력값을 줘서 입력값에 따라서 다르게 동작하는 프로그램을 어떻게 실행시킬지 알아볼 것
javac OkJavaGoInHomeInput.java를 컴파일하면 OkJavaGoInHome.java의 class파일이 생기고,
이 파일이 쓰는 다른 class파일들도 자동으로 컴파일 된다
args가 프로그램의 입력값을 받는 녀석
두 args가 같아야함
들어오는 첫 값은 args[0] 두번째 값은 args[1]을 써서 가져올 수 있음
*첫째값과 두번째값을 주는 방법
첫번째값, 두번째값 표시는 띄어쓰기로
cmd 명령어 : java OkJavaGoInHomeInput "Java APT 507" 15.0
(첫번째값) (두번째값)
메커니즘
첫번째값 Java APT 507이 args[0]으로 들어가서 String id의 String타입 id값이 되고,
두번째값 15.0이 args[1]로 들어가서 String bright의 String타입 bright 값이 되는 것
그럼 id나 bright가 들어가 있는 아래의 Elevator(id), Security(Id) 등에 변수로 한번에 적용되는 메커니즘이다
cmd에서 인수(args)에 넣을 첫번째값,두번째 값을 아래처럼 바꾸면 된다
'JAVA > 생활코딩 JAVA1 (renewal)' 카테고리의 다른 글
생활코딩 JAVA1. 13.3-4. 자바 문서 보는 법 : 클래스, 인스턴스, Constructor 생성자 (0) | 2022.01.05 |
---|---|
생활코딩 JAVA1. 13.1-2. 자바 문서 보는 법 : API vs UI // 패키지,클래스,변수,메소드 (0) | 2022.01.05 |
생활코딩 JAVA1. 12.1-3 : 직접 컴파일하고 실행하기 (0) | 2022.01.02 |
생활코딩 JAVA1. 11 : 입력과 출력 // arguments & parameter (0) | 2022.01.02 |
생활코딩 JAVA1. 10 : 디버거(debugger) , 디버깅, 브레이크포인트 (0) | 2022.01.01 |