얄코의 제대로 파는 자바/섹션2

자바 프로그램 실행하기

백엔드 개발자 2024. 2. 18. 12:22

 

 

1. 자바 프로그램 실행하기 | Notion

IntelliJ에서 프로젝트 생성

yalco.notion.site

 

 

요약
  • SRC 파일에서 빌드(컴파일 + 링크)를 진행. 결과물로 out파일이 나옴.
  • External Libraries는 jdk에서 제공하는 기본 라이브러리.
  • .idea는 인텔리제이의 프로젝트에 대한 설정 파일들 존재.

 

 

1. IntelliJ 프로젝트 생성


 

자바의 메인 메소드. ON 스위치처럼 자바프로그램을 실행하려면 필요한 메서드이다.

 

 

 

 

2. Main.java 수동으로 실행하기


실행순서

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 버전, 컴파일할 위치등을 정해놓을 수 있다.

 

 

 

참고 : 기본 코드 자동생성 단축어
  • psvm - 프로그램을 시작하는 메인 메서드
  • sout - 한 줄 프린트하기

 

 

 

출처