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) 에 넣을 첫번째값 , 두번째 값을 아래처럼 바꾸면 된다