2023.11.06 수강 완료
1.path란 실행시키고자 하는 프로그램 파일의 경로가 저장된 환경 변수를 의미하며 이러한 path를 이용해 프로그램 파일의 경로를 찾거나 프로그램 파일이 설치되어있는지 확인해 볼 수 있다.
2.javac 명령어로 컴파일을 진행하면 해당 소스 파일이 컴파일 된 클래스 파일을 생성하고, java명령어로 컴퓨터가 읽을 수 있는 클래스 파일을 읽고 그 안에 있는 main 메서드의 프로그램을 실행시킨다.
3.라이브러리란 코딩에 활용 할 수 있는 다른 사람이 만들어 놓은 코드들의 모음이다. 라이브러리를 필요에 따라 찾아내고 잘 활용해 나가는 것도 개발자로써의 중요한 역량이다.
4.일일이 입력값을 설정해줄 필요 없이 바로바로 필요한 입력 값을 실행과 동시에 넣어 줄 수 있어서 빠르고 편리해진다.
path란 환경변수를 설정해서 어떤 프로그램을 실행할 때 그 경로에 있는 프로그램은 시스템에서 바로 실행할 수 있도록 지정 하는 것이다.
cmd로 컴파일 하는 과정은 다음 과 같다.
javac 명령어로 클래스파일을 만들고 컴파일
java 명령어로 실행하면 컴파일된 클래스파일을 jvm이 읽을 수 있게 되고 이 안에서 클래스파일명과 이름이 동일한 클래스를 찾고 그안에 main함수를 찾아 거기에 있는 실행내용을 시스템에게 전달하여 컴퓨터가 작업을 실행 하는 것이다.
라이브러리는 프로그램을 실행하기위해 다른사람이 짠코드 혹은 main 함수가 있는 클래스 외부에 있는 코드를 모아놓은 것으로 이를 활용하면 다른 사람이 짠코드를 활용해 프로그램을 만들 수 있는 등에 협업이 가능해진다.
이를 cmd에서 활용하는 방법은 라이브러리가 현재 디렉토리에 있지않으면 그 라이브러리가 있는 곳을 클래스패스에 등록하여 찾도록 해야하는데 그방법은 -cp ".;lib" 과같이 .은 현재 디렉토리이며 탐색할 다른 디렉토리를 추가하고 싶으면 window는 세미콜론 ;으로 구별하여 추가하면 되고 mac이나 linux는 세미콜론이 아닌 콜론: 으로 구별해주면 된다.
앱에서 입력값을 넣는 것이 코드 내부를 뜯어서 매번 입력값을 코드안에 적어두고 실행하는 것보다 훨씬 간편하고 사용자가 사용하기 편하다.
다른 사람들이 만들어 놓은 것을 활용하기 위해서 -> 라이브러리라는 개념을 사용한다.
라이브러리를 사용하기 위해서 cmd 명령어 class를 읽어주기 위해서
javac -cp ".;lib" 를 활용하게 된다. cp는 class path의 약자로서, 현재 디렉토리에서의
Okjavaprogram class를 읽어주기 위해서 . 을 사용, 이후 같은 디렉토리에 있지 않은
lib 폴더의 디렉토리에서 탐색을 위해서, 세미콜론 ;을 활용하여 탐색하고, 실행 할 수 있게 한다
cmd실행
실행하고자하는 자바파일이 있는 폴더위에서 폴더경로를 복사한후에
cmd창에서 cd+복사한주소입력후 엔터: cmd의 현재경로를 복사한 주소로 경로를지정
javac ( c는 compile로 추정) 으로 class파일로 컴파일
java 로 class파일을 실행하기
+내가만든 자바파일이 순전히 내가만든 프로그램이아니라 다른사람이 만든프로그램을 import하여
도구로 사용한거라면
컴파일할 java파일이 다른사람이 만든 java파일들을 import해서 도구로 사용한경우에 컴파일할경우
import하여 도구로사용한 java파일들도 같이 컴파일되서 class파일이 생긴다.
이때 도구로사용한 java파일들이 있는 패키지가 컴파일할 java파일이 있는 현재위치와 다를경우
--class-path 혹은 -cp + "폴더명" 으로 경로를 지정해주어서 찾게만든다. ( "." :현재위치를찾으라는뜻)
ex) -cp "ABC;." : ABC폴더와 현재폴더에서 찾으라는뜻)
+이때 arguments로 입력값을 따로 입력하게 했던 자바파일의경우 실행할때
cmd에서 java + 실행하고자하는 자바클래스파일명 + arguments로 입력하고자 했던 값을 순서대로 입력하면된다.
0. 내 PC 우클릭>속성>고급 시스템 설정>고급>환경 변수>(사용자 이름)에 대한 사용자 변수>path>jdk가 설치된 경로로 환경 변수 설정
1. cmd 실행
2. cd 주소 엔터로 java 파일이 있는 경로 지정
3. javac 파일명.java로 수동 컴파일 (javac는 java compile로 추정)
4. 내 것이 아닌 코드 (라이브러리, 패키지 등)가 있는 경우 자바 파일과 같은 경로에 존재해야 함.
ㄴ4-1. 자바 파일과 같은 경로에 사용한 라이브러리(혹은 패키지)가 없는 경우 javac -cp ".;폴더명" 파일명.java로 라이브러리 혹은 패키지의 경로를 지정해주어야 함(세미 콜론으로 구분, 마침표로 현재 경로도 포함)
5. 컴파일 하여 class 파일이 생성되었다면 java 파일명 으로 실행
ㄴ5-1. 자바 파일과 같은 경로에 사용한 라이브러리(혹은 패키지)가 없는 경우 마찬가지로 java -cp".;폴더명" 파일명 으로 실행
6. input 값을 입력하려면 java 파일명.java "args[0]에 들어갈 input값" "[1]에 들어갈 input 값"(띄어쓰기로 구분)
컴파일Compile!
① Comile ! .java 확장자가 붙은 소스코드를 .class 확장자가 붙은 실행파일로 바꾼다.
② Run ! 클래스 확장자가 붙은 파일을 실행한다.
③ Input ! 실행할 때 입력값을 주어 입력값마다 다르게 동작하는 출력값을 만든다.
어떻게 java라고 명령을 내렸을 때 이 명령이 실행되는 이유가 뭘까?
그것은 path 라고 불리는 환경변수 때문인데...
윈도우에서는 내 PC 우클릭>속성>고급 시스템 설정>고급>환경 변수>(사용자)에 대한 사용자 변수>path>jdk가 설치된 경로를 작성해 환경변수 설정이 가능하다.
낯설고 건드리면 안될것처럼 생겼던 명령 프롬프트에 직접 과감하게 클래스를 찾게 하고 그 안의 코드를 읽게 만들고... 적는 것에 따라 꼬박꼬박 잘 대답하는 cmd를 보니 굉장히 신기하다.