자바 커맨드(cmd) 컴파일 및 실행

자바를 커맨드로 컴파일하거나 실행하는 경우는 거의 없습니다.

자바 개발은 대부분 IDE 개발툴을 이용하며, 대표적으로 이클립스, 인텔리J, VS Code 를 사용합니다. 하지만 커맨드로도 컴파일 및 실행이 가능합니다.

여기서는, 자바 언어의 원리를 공부하기 위해서 재미로 몇 가지 실행하려고 합니다. 재미로 하는 것이니 만큼 그냥 눈으로 보시는 것 만으로도 되고, 해보다가 잘 안되면, 안해도 됩니다.

사용하는 명령어는 윈도우즈 기반이며, 리눅스나 맥OS의 경우에는 각자 알아서…

PATH 설정

자바를 어디서든 실행가능하게 하려면, 윈도우즈에서는 path 설정이 필요합니다. path 설정에 대한 자세한 내용은 다른 블로그를 참조하시고, 여기서는 path 설정하지 않고, 직접 java가 있는 폴더 아래에서 진행합니다.

JDK 위치 확인

JDKJava Development Kit의 줄임말입니다. 즉, 자바 개발에 필요한 여러 프로그램(툴)을 모아서 키트(Kit) 형태의 세트로 묶어 놓은 것이지요.
지난번 이야기에서 말한 자바 트레이닝 툴을 받으셨다면, 아래 폴더에서 여러 개의 폴더를 보실 수 있습니다. 각 폴더별로 Java 개발에 필요한 파일을 도구들이 들어 있습니다. (환경파일, 실행파일, 라이브러리 등)

C:\Java-training\jdk-14.0.1

우리는 그 중에서 “bin” 폴더 아래에 있는 것을 사용할 예정입니다.

C:\Java-training\jdk-14.0.1\bin

폴더를 열어보면, 아래와 같이 많은 도구가 있습니다. 우리는 그 중에서 2가지 javac, java를 사용합니다.

jdk-folder

javac와 java는 이름에서도 알 수 있듯이 서로의 역할이 있습니다.

javac : 자바 컴파일러
java: 자바 실행기 (Virtual Machine, JVM)

참고로 javadoc과 javap는 아래와 같은 용도로 사용합니다.

javadoc: 자바 문서 생성
javap: 자바 역컴파일러(역어셈블러)

즉, JDK라는 것은 이 많은 프로그램을 묶음으로 만들어둔 것입니다.

java 실행 확인

윈도우즈에서 명령 프롬프트 앱(이하 cmd)을 실행합니다. 실행하는 방법은 프로그램을 찾으셔도 되고, cmd로 검색해서 찾을 수도 있습니다.

cmd에서 아래 명령어를 입력하면, java 실행파일이 있는 곳으로 이동합니다.

C:\>cd C:\Java-training\jdk-14.0.1\bin
  • cd : change directory

java 버전을 확인하는 명령어(java -version)로 java 실행을 확인합니다.

C:\Java-training\jdk-14.0.1\bin>java -version
openjdk version "14.0.1" 2020-04-14
OpenJDK Runtime Environment (build 14.0.1+7)
OpenJDK 64-Bit Server VM (build 14.0.1+7, mixed mode, sharing)

C:\Java-training\jdk-14.0.1\bin>

소스코드 만들기

아래 소스코드를 복사하여, 메모장 등을 이용하여, JavaCmdTest.java로 하여, 아래의 폴더에 저장합니다. 간혹 “JavaCmdTest.java.txt”로 저장하는경우가 있습니다. 반드시 확장자가 .java이어야 합니다.

C:\Java-training\jdk-14.0.1\bin\

public class JavaCmdTest {

	public static void main(String[] args) {
		
		System.out.println("Hello World Cmd!");
		
	}
}

자, 이제 소스코는 준비되었습니다.

자바 cmd 소스

소스코드 컴파일

java 소스코드인 JavaCmdTest.java를 컴파일하면, JavaCmdTest.class 라는 바이너리 파일이 생성됩니다.

“JavaCmdTest.java” 파일이 “javac”와 동일한 폴더에 있다고 하면, 아래와 같은 명령어로 컴파일 할 수 있습니다.

C:\Java-training\jdk-14.0.1\bin>javac JavaCmdTest.java

C:\Java-training\jdk-14.0.1\bin>

커맨드 프롬프트에서는 아무 일도 일어나지 않은 것 같지만, 폴더를 확인해 보면, JavaCmdTest.class라는 파일이 생긴 것을 알 수 있습니다.

자바 cmd 클래스

자바 프로그램 실행

“C:\Java-training\jdk-14.0.1\bin” 폴더에서 아래와 같이 실행명령을 하면, “Hello World Cmd!”가 출력됩니다.

C:\Java-training\jdk-14.0.1\bin>java JavaCmdTest
Hello World Cmd!

C:\Java-training\jdk-14.0.1\bin>

패키지가 있는 경우 컴파일 및 실행

자바 커맨드 실행에서 패키지를 선언한 경우에는 위와 같이 명령어를 하면, 에러가 발생합니다.
만일, 아래와 같은 소스코드를 JavaTest.java 로 저장했다면,

package com.training;

public class JavaTest {

	public static void main(String[] args) {
		
		System.out.println("Hello World!");
		
	}
}

명령어에 아래와 같이 추가 옵션이 필요합니다.

C:\Java-training\jdk-14.0.1\bin>javac -d . JavaTest.java

C:\Java-training\jdk-14.0.1\bin>java com.training.JavaTest
Hello World!

C:\Java-training\jdk-14.0.1\bin>