ClassPath

서현서현·2022년 5월 26일
0

서블릿 & JSP

목록 보기
20/26
post-thumbnail

개발환경

Backend 개발언어 : JAVA SQL

Frontend 개발언어 : JS(jQuery) html css

클라이언트는 요청을 보내기위해 브라우저를 사용, 주소를 입력해 엔터를 치면 서버로부터 응답데이터가오고 화면이 뜬다. 이때 페이지소스를 보면 html css Js가 보이는데 클라이언트 부라우저 쪽에서 저것들이 실행되고있기 때문이다. 이를 프론트엔드 모듈이라고 부른다

백엔드모듈은 서버쪽에서 실행!

sql을 사용하려면 오라클 클라이언트가 필요

java는 jdk가 필요

프엔 개발언어는 브라우저만 있으면 된다

백엔드모듈의 개발환경을 어떻게 구성할것인가?

버츄얼머신을 구동하기위한 명령어

javac의 경로는 하나만 뜨는데 JRE의 경로이다. java 어플리케이션을 실행할수있는 환경만 만들어준다.

개발을 위해서 필요한 환경이 JDK!

오라클 클라이언트가 이미 설치되어있다

우리가 사용할 어플리케이션은 **두개**

- **standalone app** : 설치형 어플리케이션
    
    (엑셀, 파워포인트 등… 네트워크 사용없이 설치후 단독으로 사용 - 초급자바때 만든것도 이거!)
    
- **web app** : web base어플리케이션

CMD창에서 .java파일 실행하기

jdk를 설치해놨으니 위 두개 다 만들 수 있다.

이번엔 설치형 어플을 만들어보자. 웹이없어도 동작하는 단독 어플리케이션!!

💡 classPath의 개념을 이해해보자!

1. java파일 생성

바이트코드로 변환한 class파일로 만들어줘야 실행이 가능하다.

2. class파일 생성

javac HelloJava.java 해서 클래스파일 만들고…

java로 실행하려는데 실행이안됨! → 패키지 때문이다.

kr.or.ddit.HelloJava - fully qualified name(FQN)이라고 부르는데,

위 경로 안에 있는 파일을 실행하는건데, 일부경로만 줬기때문에 못찾은것!

즉, 풀네임 적어서 컴파일 해야한다.

그런데.. 안찾아짐

당연함 패키지 없음 ⇒ 컴파일 잘못한것! class파일이 패키지 경로 안에 존재해야한다.

만들어놓은 class 지우고

만들어질 클래스파일 어디에 배치할지 정할 수 있는 명령어 -d를 이용할것이다.

javac -d . (자바파일명) ⇒ 클래스파일을 현재 경로에 배치하라는 뜻

처리결과 정상적인 경로에 클래스파일이 배치되었다!

java 명령어를 실행하면 정상실행된다!

>> -d를 치고안치고의 차이가 크다…

그런데,

kr.or.ddit.HelloJava는 d드라이브 아래아래에 있는건데 왜 kr부터만 사용하고 그 상위경로는 작성하지 않을까?

⇒ 약속된바가 있기때문이다! 현재 경로 자체가 sample이므로 sample에서부터 검색한다는것이 고정되었다! 이를 ClassPath라고도 한다

원래 이렇게 찾아야하지만 표시한부분부터 알아서 찾아주기로 약속된것이다

classPath 변경시 사용하는 명령어 -cp

d:로 변경후 아까와 동일하게 해보니까 안됨. 클래스패스가 달라졌기때문

-cp를 통해 sample폴더로 클래스패스 지정후 거기서 경로를 불러오면 정상실행된다

💡 Class Path 란? => 클래스라는 자원을 찾아낼때 그를 검색하기위한 시작점


다른 클래스의 객체를 생성해 CMD파일에서 실행하기

새로운 클래스를 만들어 마찬가지로 sample에 저장

주의) 이 클래스에서 VO를 쓰려면 임포트해야됨

💡 VO를 사용해야하니 VO를 먼저 컴파일 해야 한다!!

정상실행된다.


ClassPath를 설정해서 실행하기

이런식으로 써야한다

실행은 이렇게


또다른 예제

import했을때 java.util이라는 경로가 있으니 저게 있어야 실행이 되는데

List클래스가 든 java.util경로는 jdk에 있다.

rt 열어보면 java폴터가 있고 그안에 util 폴더가 있고 그안에 .class파일들이 많다. 그중에 ArrayList.class파일과 List.class 파일이 있는것을 확인 할 수 있다

즉 rt.class파일이 가장 기본적인 클래스패스로 설정이 되어야함

근데 환경변수 설정했으니 버츄얼머신이 이미 그 설정을 받아놓은거나 다름없음!

이제 새로 작성한 HelloJava를 컴파일 해보자ㅣ

주석은 인코딩에러가 뜨므로 처리해주고가자

이거 쓰고 실행

💡 classPath : 컴파일러나 VM이 클래스자원을 검색할때 사용하는 경로
(검색시작 위치), 동시에 여러개의 classPath 사용가능
현재폴더(콘솔상의 현재위치)나 rt.jar는 기본 classPath로 지정되어있다

**[옵션]**
- d : 컴파일 후 생성되는 클래스파일 위치
- cp[-classpath] : 클래스패스를 추가
- encoding : 소스작성시의 charset을 컴파일할때 반영하기 위해 사용

우리가 만들었던 중프 buildPath 확인 → 라이브러리에 rt.jar있으니 리스트 쓸수있었구나…

0개의 댓글