java설치 && 자바 프로그램과 실행의 원리에 대한 이해

박정훈·2021년 4월 17일
0

java

목록 보기
14/15

JAVA설치 참고
https://jhnyang.tistory.com/224#%EC%B1%85%EA%B0%88%ED%94%BC3

JRE는 더 이상 없다.

JDK11 버전부터는 JRE가 안에 포함되어있다. JRE가 따로 제공되지 않는다. 자바에 jlink가 생겨서 JRE를 별도로 설치하기보단 개발자들이 어플리케이션에 링크를 걸어서 실행환경을 번들로 포함시키길 바라기 때문이다.

Javac.exe:	자바 컴파일러
Java.exe:	자바 런처

환경 변수의 Path

환경 변수 Path는 윈도우 운영체제가 명령 프롬프트에서 입력된 실행파일을 찾는 경로의 정보가 된다. 따라서 명령 프롬프트에서 디렉토리 경로에 상관없이 실행되기를 원하는 실행파일이 있다면 이 실행파일이 저장되어 있는 경로 정보를 환경 변수 Path에 등록해야 한다. 참고로 이는 자바와 관련 있는 문법이 아닌 지극히 윈도우라는 운영체제의 활용에 대한 이야기이다.

cmd에서 java 컴파일 및 실행하는 방법

class FirstJavaProgram
{
	public static void main(String[] args)
	{
		System.out.println("Welcome to Java");
		System.out.println("First Java program");
	}
}
javac FirstJavaProgram.java

FirstJavaProgram.class 파일이 생성된다.
2.

java FirstJavaProgram

실행은 컴파일의 결과물인, 확장자가 class인 클래스 파일을 대상으로 한다. 컴파일 할 때와 달리 실행할 때에는 파일의 확장자를 생략한다.

결과

Welcome to Java
First Java program

cmd

command prompt / 명령프롬프트

Windows의 기본 유틸리티이다.
명령 프롬프트는 Windows에 기본으로 제공되는 프로그램이다. Windows에서 CLI 기반의 명령어를 입력하여 수행할 수 있게 해 주는 셸로, 이를 통해 배치 파일 제작 및 명령어 입력 등 다양한 작업들을 할 수 있다. help를 입력하면 명령 프롬프트에서 제공하는 명령의 목록을 볼 수 있다.

통합 개발 환경

통합 개발 환경(Integrated Development Environment, IDE)이라는 소프트웨어 개발 도구를 사용하면 보다 쉽게 프로그램을 작성하고 컴파일 및 실행을 할 수 있다. 자바의 대표적인 통합 개발 환경으로는 '이클립스'가 있다.

프로그램 실행구조

일반적인 프로그램은 윈도우 또는 리눅스와 같은 운영체제 위에서 실행이 된다.

위 그림이 보이듯이 하드웨어를 기반으로 운영체제가 동작하고, 그 위에서 프로그램이 실행되는 구조이다. 하드웨어 위에서 실행되는 운영체제가 프로그램을 실행시키는 구조이다.

그러나 자바프로그램은 프로그램과 운영체제 사이에 JVM(자바 가상 머신, Java Virtual Machine)이 있다. 운영체제는 자바 가상머신을 실행시키고, 자바 가상머신이 자바 프로그램을 실행시키는 구조로 자바는 동작한다.
자바 가상머신은 운영체제 위에서 동작하는 일종의 소프트웨어이다. 왜 자바프로그램이 운영체제가 직접 실행시키는 것이 아닌 jvm에 의해 실행되는 구조로 만들었을까? 이는 자바 프로그램을 운영체제에 상관없이 실행시키기 위함이다.
프로그램은 운영체제에 따라 구현 방법이 달라진다. 즉 운영체제가 다르면 같은 기능의 프로그램이라도 구현 방법이 달라진다. 하지만 자바 프로그램은 코드 수정 없이 다양한 운영체제에서 실행시킬 수 있다. 다만 운영체제별로 자바 가상머신이 달라진다.
따라서 자바 프로그래머는 자바 가상머신만 운영체제에 맞게 설치해주면 된다.

자바 컴파일러와 자바 바이트코드

자바 컴파일러는 자바 가상머신이 이해할 수 있는 코드를 생성해낸다.
앞서 작성한 FirstJavaProgram.java 파일을 가리켜 '소스파일'이라 하며, 소스파일에 저장된 프로그램 코드를 가리켜 '소스코드'라 한다. 따라서 자바 컴파일러는 소스파일에 저장된 소스코드를 자바 가상머신이 이해할 수 있는 '자바 바이트코드'로 변환하는 프로그램으로 정리할 수 있다. 바이트 코드는 확장자가 class인 클래스 파일에 담긴다.

javac.exe는 자바 컴파일러다.
java.exe는 자바 런처(Java Launcher)라 한다. 이는 자바 가상머신을 구동하고 그 위에 자바 프로그램이 실행되도록 돕는 프로그램이다.

클래스 파일이름

자바 파일의 이름이 아니라 자바 파일 안의 클래스이름을 따라간다.

profile
정팔입니다.

0개의 댓글