일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 아오
- 반복문
- 안드로이드 빌드 안됨
- marquee
- 부팅디스크
- 자바
- MUI
- Linked List
- 백틱
- 잠시만조용히
- Linux
- rufus
- 연결리스트
- CentOS
- Vue
- 깃
- 인텔리제이
- GIT
- 인공지능
- for문
- AI
- 운영체제
- 한글깨짐
- 안드로이드 빌드 안될때
- 핫모듈
- While문
- 로그
- Intellij
- CentOS7
- gitbash
- Today
- Total
새끼 개발자의 Life is egg
메모장으로 자바 프로그램을 작성해보자 본문
우선 텍스트 문서(메모장)을 새로 만들고 확장자를 java로 변경한다.
파일명은 Hello 로 해주었다.
Hello.java 자바 파일이 만들어졌다.
이제 메모장을 열고 아래와 같이 작성한다.
class Hello{}
class 클래스명{} 으로 작성하여 Hello 라는 클래스를 작성한다.
클래스는 자바 프로그램의 단위이며 자바 프로그램은 클래스들의 집합으로 이루어져 있다.
따라서 자바 코드에는 반드시 하나 이상의 클래스가 존재해야 한다.
아래의 메인메서드가 들어 있는 클래스는 단 하나뿐이며, 그 클래스의 이름과 파일 명이 일치해야 한다.
(인스턴스(객체, 어떠한 제품?)를 만들 수 있는 설계도라고 볼 수 있다.)
자바 프로그램의 모든 문장들은 클래스의 { } (중괄호) 안에 있어야 한다.
public static void main(String[] args){}
메인메서드이다. 인터프리터가 이 메인메서드를 호출함으로써 자바 프로그램이 시작되기 때문에,
이 메인메서드 없이는 자바 프로그램을 실행할 수 없다.
마찬가지로 중괄호 { } 안에 실행할 문장을 넣으면 첫 문장부터 순서대로 실행된다.
System.out.println("Hello, world!");
출력할 때 사용한다. 큰따옴표 안에 원하는 문자열을 넣거나,
괄호 ( ) 안에 숫자나 변수, 식 등을 넣어 출력할 수 있다.
( PRINTLN 이다. I 와 L 이 헷갈릴 수 있으니 주의...)
간단하게 "Hello, world!"를 출력해보기로 한다.
잊지말고 저장...
이제 명령 프롬프트를 실행한다
윈도우 검색창에 cmd를 검색하면 명령 프롬프트 실행파일을 바로 찾을 수 있다.
우선
cd java파일의 경로
를 입력하고 엔터를 누른다. cd 는 Change directory를 뜻하는 명령어로, 작업할 위치를 변경한다.
내 자바 파일은 바탕화면 work 폴더 안에 있었기 때문에
cd 바탕화면\work
라고 입력.
그리고 dir 을 입력한다.
dir 은 현재 디렉토리에 있는 파일들과 하위 디렉토리 목록을 보여주는 명령어.
현재 Hello.java파일 1개가 있는 상태이다.
이번엔
javac Hello.java
라고 입력한다.
이것은 자바 컴파일러(javac.exe)로 내가 만든 자바파일(여기서는 Hello.java)을 컴파일 하라는 명령어.
컴파일러는 사람이 작성한 문장을 기계어로 번역(컴파일)해주는 역할을 한다.
(자바 컴파일러는 jdk bin 폴더 안에 있다.)
컴파일 후 한번 더 디렉토리를 찍어보면
Hello.java 파일 외에
Hello.class 라는 클래스 파일이 생성된 것이 보인다.
만약 Hello 자바파일 안에 Hello 외에 다른 클래스가 있었다면 각 클래스마다 클래스파일이 생성되었을 것이다.
혹시
error: cannot find symbol
이라는 에러가 난다면... 오타일 가능성이 높다. 자바 코드를 다시 확인해보자.
만약 오타가 맞다면 수정 후 다시 컴파일 해주자.
또는
javac은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다.
라는 문구가 뜬다면 그것은 javac.exe 를 찾지 못하였기 때문이다.
이때는 javac.exe가 있는 jdk bin폴더 경로를 같이 작성해주면 되는데, (C:\jdk1.8\bin\javac Hello.java 처럼)
이렇게 매번 작성하기는 번거롭기 때문에 환경변수 설정을 해주는 것이 편하다.
윈도우 검색창에서 system을 검색해서 시스템 설정 창으로 들어가면 우측 상단에 시스템 정보가 있다.
여기서 고급 시스템 설정 > 환경변수 > 시스템변수 를 보면
Path 라는 변수가 있다. 변수를 클릭 > 편집 탭으로 들어가면 환경변수 편집이 가능하다.
우측 상단의 새로 만들기를 누르고 jdk의 bin폴더 경로를 추가해주면 된다.
이제 work 폴더 안에서 자바파일과 클래스파일을 확인할 수 있다.
(변경된 환경변수 설정이 있다면 명령프롬프트를 종료하고 다시 실행시켜주자.)
이제 컴파일된 class파일을 실행해 볼 차례다.
명령프롬프트에서 java Hello 를 입력한다.
java 는 자바 인터프리터(java.exe) 인데, 자바 프로그램(클래스파일)을 실행한다.
여기서 인터프리터가 메인메서드를 메모리에 올려놓음으로서 자바 프로그램이 실행된다.
메모장(자바파일)에 작성한대로 "Hello, world!"가 출력되었다.
여기서 만약 아래와 같은 오류가 났다면
오류: 기본 클래스 Hello을(를)찾거나 로드할 수 없습니다.
다시 고급 시스템 설정의 환경변수 탭을 열고
아래의 시스템변수에서 classpath 변수를 본다.
변수 classpath의 값이 위와 같이 되어있지 않고
%JAVA_HOME%lib
이라고만 되어있다면 편집창을 열어 그림과 같이 ;.; 또는 ;. 를 붙여준다.
(이렇게 해야 자바 파일 실행시에 확장자를 인식할 수 있게 된다고 한다.)
주의할 점.
컴파일 시에는 확장자를 붙이고, 실행할 때는 확장자를 붙이지 않는다.
과정을 간단하게 정리하자면
Hello.java 작성 --------------------------> Hello.class 생성 --------------------------> "Hello, world!"
컴파일러(javac.exe)가 컴파일 인터프리터(java.exe)가 실행
'개발's egg > Java' 카테고리의 다른 글
ObjectMapper 에러 (0) | 2023.03.01 |
---|---|
스프링부트 mybatis bean 생성 못할때 (0) | 2023.02.28 |
[Java] 반복문 - for, while, do-while (0) | 2019.01.12 |
[자바이론] 변수 (0) | 2019.01.05 |
[자바이론] 자바란? (0) | 2019.01.01 |