코딩 공부/자바(Java)

자바 설치 및 환경 변수 설정

cagn 2024. 10. 21. 00:06
SMALL

자바에 대해서 설치하는 방법을 적고자 한다.

 

자바는 JDK라고 해서 자바 개발 도구를 제공하고 있다. 자바를 다운로드 받으려면 자바를 개발하고 있는 회사인 오라클에 들어가야 한다. 그냥 구글에 jdk라고 쓰면 맨 위에 다운로드 페이지가 나온다.

https://www.oracle.com/java/technologies/downloads/

 

Download the Latest Java LTS Free

Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts.

www.oracle.com

 

JDK 다운로드 페이지

그렇게 들어가면 위에 JDK 23과 JDK 21이 나오는데(시간에 따라 달라질 수도 있다.), 이것은 버전이다. 보통 최신 버전보다는 안정성을 위해서 이전 버전을 받는 것을 권장한다. 이것을 각 OS에 따라 리눅스, 맥OS, 윈도우에 따라 다운로드 받고 설치하면 된다.

 

그 후 환경 변수를 설정해야 하는데, 일일히 자바를 실행할 때 파일 경로를 찾아가면서 들어가는 불편함을 없애고 아무데서나 자바를 접근할 수 있도록 하는 것이다.

 

보통 자바의 경우는 설치를 하면 'C:\Program Files\Java'에 설치가 되며, 그 밑에 버전이 들어가있다. 21버전을 다운로드 받았다면, 'C:\Program Files\Java\jdk-21' 폴더가 있을 것이다. (맥의 경우에는 /Library/Java/JavaVirtualMachines/자바 버전/Contents/Home으로 들어가면 된다. jdk-21버전이면 중간에 버전에 jdk-21이 폴더가 있습니다.)

 

그렇다면 윈도우 창을 열어서 찾기에 '고급 시스템 설정'을 누르고 '환경 변수'를 누른다. (맥의 경우는 터미널을 열어서 'vi ~/.bash_profile'를 입력한다. vi는 Visual Editor의 약자로 텍스트 파일 편집기를 터미널로 연다는 뜻이며, ~는 환경 설정이 들어있는 사용자의 홈 디렉토리이며, .bash_profile는 환경 변수를 설정하기 위한 파일이다. 그 후 'i'키를 눌러서 수정을 시작한다. i는 insert 명령어로 내용을 삽입한다는 뜻이다.)

 

그리고 윈도우의 경우 시스템 변수 항목에 새로 만들기를 눌러서 변수 이름과 변수 값을 넣어서 환경 변수를 추가하고, 맥의 경우는 'export 변수이름=변수값'을 입력해서 환경 변수를 추가한다.

 

먼저 해도 되고 안해도 되지만 변수 이름에 'CLASS_PATH', 변수값에 '.;'을 추가해준다. 이는 클래스의 위치를 현재 위치(.)부터 인식하라는 환경 변수이다. 이 변수는 딱히 설정하지 않아도 무리는 없다.

 

그 후에는 자바가 설치되어 있는 환경 변수를 설정하는데, 변수 이름에는 'JAVA_HOME', 변수값에는 자바가 설치된 주소를 추가해준다. 기본적으로 설치되어 있다면, 윈도우의 경우는 'C:\Program Files\Java\자바 버전'일테고, 맥의 경우는 ' /Library/Java/JavaVirtualMachines/자바 버전/Contents/Home'이다. 이것은 자바의 설치 경로를 지정해서 다른 프로그램(자바를 편집해주는 프로그램 등)이 자바가 어디있는지 찾을 수 있도록 해준다. 즉 프로그램이 필요로 하는 설정의 정보를 제공해준다.

 

그 다음에는 자바를 컴파일해주는 실행기의 경로를 지정해야 하는데, 이것은 설치 경로 아래에 있는 bin(binary의 약자 - 컴퓨터가 읽을 수 있는 형태로 번역해주는 장치가 있는 장소)이라는 폴더에 있다. 이것은 앞에서 저장해놓은 변수 이름 JAVA_HOME을 사용하는데, 이 경로 밑에 bin만 지정하면 되기 때문이다. 변수 이름에는 'PATH'를 지정하며, 윈도우에는 이미 PATH가 존재하기 때문에 그것을 찾아서 편집 버튼을 누른다. 그 후 변수 값에는 윈도우의 경우는 '%JAVA_HOME%\bin'으로 설정하고, 맥의 경우는 '${PATH}:$JAVA_HOME/bin'으로 설정합니다. 이는 JAVA_HOME를 변수 이름으로 가지는 것의 값에 해당하는 경로 아래의 bin으로 설정하라는 뜻이다. 그 후 윈도우는 확인 버튼을 누르면 되고, 맥의 경우는 esc를 누르고 'wq!'를 입력하고 'source ~/.bash_profile'를 입력해서 저장한다. bin을 설정하는 것은 컴파일러를 실행할 실행 경로를 설정하는 것이다. 그 외로 환경 변수는 시스템 동작 제어(운영체제나 프로그램의 동작을 제어)나 프로그램간 정보 공유(여러 프로그램이 공통으로 사용되는 정보를 저장 및 공유)를 위해서도 사용된다고 한다.

 

이렇게 설정하고 나면 확인을 해야하는데 javac -version과 java -version을 쳐서 제대로 버전이 뜨는지 확인한다. 자바는 대부분의 운영체제에서 동일한 작동을 수행하기 위해서 소스 코드를 바로 컴퓨터가 이해할 수 있는 기계어로 컴파일(번역)하는 것이 아닌, 중간 코드인 바이트 코드를 만드는데, 이 바이트 코드는 bin 폴더에 class 파일로 저장이 된다. (기존 소스 파일은 src 폴더에 java 파일로 저장이 됩니다.) 이 자바 파일(.java)를 바이트 코드(.class)로 컴파일(번역)해주는 자바 프로그램이 바로 javac(자바 컴파일러의 약자) 프로그램이다. 즉, 자바 파일을 자바 가상 머신이 읽을 수 있는 바이트 코드로 번역한다. 그 후 이 바이트 코드를 운영 체제별로 다운받은 JVM(자바 가상 머신)이 기계어(운영체제가 직접 실행할 수 있는 바이너리 파일)로 변환하는데 이 역할을 하는 것이 java 프로그램이다.

 

반응형

 

내부 체계 생각

나는 이후에 대해서는 예상하기로 JVM를 운영 체제에 맞게 다운로드 받았기 때문에 JVM이 운영체제에 맞는 기계어 코드(실행 파일)로 번역을 했고, 이것이 각각의 운영 체제가 판독을 해서, 하드웨어인 CPU와 GPU 등에 직접적으로 전기 신호 등을 명령하는 것으로 생각했다. 그렇게 컴퓨터가 코드에 맞춰서 작동이 되는 것이라고 생각했다.

 

하지만, 자바를 설치했을 뿐, 직접 명령 프롬프트(cmd)나 터미널이나 메모장을 통해서 소스를 편집하기에는 불편함이 있다. 그래서 보통 프로그래밍 언어를 편집할 때에는 통합 개발 환경 프로그램을 설치한다. 코드 편집과 컴파일, 디버깅까지 다 같이 제공하는 도구가 필요한 것이다.

 

자바는 보통 통합 개발 환경 프로그램으로는 이클립스를 사용한다. 이는 무료이고, 자바에 대해서 다양한 편리한 도구가 많기 때문이다.

 

일단 이클립스 홈페이지에 들어간다. 구글에 이클립스라고 치면 맨 위에 뜬다. 그리고 다운로드를 받으면 된다. 이클립스를 설치하면 그 폴더에 들어가서 아이콘을 바탕화면에 바로가기 복사하면 된다.

 

워크 스페이스 설정창

 

이클립스를 실행하면 다음과 같은 창이 뜰텐데, 자바를 편집할 폴더를 하나 만들어서 거기에 관리하자. 그리고 그 폴더를 옆에 Browse를 클릭해서 설정하면 된다. 그러면 Welcome이 뜰텐데 이거는 그냥 x표시 눌러서 끄면 된다.

 

그 후에 왼쪽에 Project Explorer 창에 마우스 오른쪽 버튼을 누르고, New 옆에 Java Project를 눌러서 프로젝트를 생성한다. 

 

지금은 모듈을 쓰지 않는다.

그리고 빨간색에 이름을 입력하고, 주황색에 Module이 체크가 되어있을텐데, 지금은 모듈을 쓰지 않으므로 체크를 해제한다. 만약에 모듈을 체크해서 만들었다면 src 폴더 밑에 module-info.java가 있을테니 그걸 Delete눌러서 삭제한다음 작업을 진행하면 된다.

 

그 다음 자바 소스는 New를 눌러서 class를 누르면 된다. 그렇게 만들면 하나의 '.java'로 끝나는 자바 소스 파일이 만들어진다. 

 

클래스 생성

그렇게 된다면 Name에 파일명(=클래스 이름)을 만들면 되고, 밑에 public은 main 함수를 자동으로 만들어주는 것이다. 필요없다면 체크를 해제하고, 필요하다면 체크를 하면 된다. 체크 해제하고 main 함수를 넣고 싶다면 직접 입력하면 된다. 그리고 모듈을 만들었다면 위에 패키지 명을 반드시 기입해야 한다.(모듈을 만들지 않았으면 기본 패키지로 가능하다.)

 

만약 aa라는 이름으로 만들었다면,

간단한 클래스 코드

다음과 같이 public class aa{}가 자동으로 들어가게 될 것이다. 이곳에서 작업하면 된다. 참고로 패키지명을 입력했다면 위에 Package 패키지명;이 기입될 것이며 (참고로 패키지명은 'aa.bb'처럼 중간에 점을 쓸 수 있다. 점을 쓰면 aa폴더 아래에 있는 bb폴더라는 의미다.) public~을 선택해서 main 함수를 만들었다면 'public static void main(String[] args){}'가 기입될 것이다.

 

이것은 main 함수로 public(모든 범위에서 누구나 사용 가능하며) static(클래스가 프로그램이 시작할 떄부터 메모리에 올리며) void(반환값은 없으며) main(JVM이 프로그램이 시작하자마자 함수를 실행하는 특수 함수이며) String[](매개 변수는 문자열 배열이며) args(매개변수의 이름은 args)라는 의미이다. 이것은 콘솔 창에서 문자열을 입력하면 그것이 입력되어 출력되는 형태이다.

 

이것을 이클립스에서 실행하려면 코드에 마우스 오른쪽 버튼을 눌러서 Run As의 Run Configurations(실행 환경 설정)를 누르고 Project를 실행을 할 코드가 있는 프로젝트를, Main Class를 main이 들어있는 클래스로 설정을 하고, 옆에 있는 Arguments(전달값) 메뉴로 들어간다. 그리고 Program arguments에 입력할 값을 입력한다. 예를 들어 '안녕하세요 반갑습니다'라고 입력하면 공백을 기준으로 '안녕하세요'는 args[0]에 들어가며, '반갑습니다'는 args[1]에 들어간다. 그리고 Apply(적용)을 누른다음 Run(실행)을 누르면, args에 매개변수를 전달할 수 있다.

 

 

LIST

'코딩 공부 > 자바(Java)' 카테고리의 다른 글

추상클래스와 인터페이스, 그리고 바인딩 (+메모리 영역)  (9) 2024.11.07
this와 클래스의 관계(포함과 상속)  (32) 2024.10.29
클래스  (12) 2024.10.19
함수  (3) 2024.10.14
배열 - 성적 처리 프로그램  (13) 2024.10.12