1. java-practice 폴더 우클릭 open in - explorer 2. Main.java에서 git bash 열기 3. JVM이 읽을 수 있도록 java파일을 컴파일한다. 명령어 : javac Main.java 4. java Main 명령어로 자바 클래스파일 실행
javac로 컴파일하기.
java 명령어로 실행하기
javap -c -p 명령어를 사용해서 바이트코드를 보는 방법.
javap
javap는 클래스를 디스어셈블 하는 명령어. 실제 동작되는 바이트코드를 확인할 수 있다. 용도는 서버상에 올라간 바이트코드 확인용 및 자바 버전 확인시 사용될 것 같다.
간단 옵션 -c : 역어셈블된 코드를 출력한다. -p : 모든 클래스와 멤버를 출력한다.
javap -v Main.class | grep major
61은 Java SE 17버전을 의미하므로, 일치하는 것을 볼 수 있다
터미널로 실행하면 컴파일-> 실행을 일일이 진행하면 매우 비효율적이다. 그래서 인텔리제이 같은 IDE에서는 실행을 쉽게 할 수 있도록 UI를 제공한다. + 우리가 명령 내리는 것보다 여러가지 옵션을 더해서 복잡하게 명령을 실행한다. 윈도우: shift+F10
out파일
인텔리제이에서는 java 실행시, out파일을 생성하고 번역이 된다. 그러므로 그 내부 폴더의 클래스파일을 실행하게 된다.
문법오류
컴파일언어는 컴파일시 번역과정에서 문법오류를 확인하여 걸러낸다. 인터프리터 언어보다 오류를 먼저 잡아놓고 실행하니 안정적이라는 특성을 볼 수 있는 것이다. 왜냐면 인터프리터 언어는 한줄씩 통역하는 시점에서 오류가 나타나니까.
3. 빌드만 해보기
컴파일,링크,빌드
컴파일 : 자바 언어를 JVM이 해석가능한 바이트코드 언어로 번역하는 것.
링크 : 클래스파일들을 최종실행 가능한 실행파일(.exe)를 만들기 위해 연결, 병합해주는 작업이다.
빌드 : 컴파일을 포함하는 작업으로, 실행은 하지 않는다. 코드를 컴파일하고 실행가능한 결과물로 만드는 과정
빌드 = 컴파일 + 링크
실행순서
원시코드(사용자가 만든 소스코드).java -> 컴파일 -> .class (목적코드) - >링크 -> 실행파일 실행
서버에 반영하는 것은 배포(Deploy), 이를 하기 위한 과정이 빌드(build)이다.
인텔리제이에서 빌드해보기
망치표시를 누르면 빌드가 진행된다.
개발할 때보다는 해당파일을 실행가능한 파일로 만들어서(exe or jar, war) 서버에 올리거나 할때 더 자주 사용되는 느낌이다.
4.외부 라이브러리 ( External Libraries) 확인
1. 프로젝트 폴더에는 들어있지 않다. 외부에 연결된 라이브러리이므로 2. jdk가 설치되어 있는 위치에 존재한다. ex: System 함수도 자바에서 제공하는 기본 라이브러리에서 가져온 것이다.
3. jdk마다 라이브러리는 평균적으로 거의 동일.(oracle jdk, corretto jdk ..)
.idea/misc.xml
Intellij에서 프로젝트를 가지고 작업할 때 어떻게 할 것인지 정의해놓은 파일. 언어레벨, jdk 버전, 컴파일할 위치등을 정해놓을 수 있다.