상세 컨텐츠

본문 제목

윈도우 명령창에서 클래스 경로 설정하기, 명령창 입력 받기

java

by Riella 2021. 1. 28. 16:10

본문

728x90

내가 있는 폴더 위치에 자바 파일이 바로 없는 경우에는 클래스 경로(classpath)를 미리 설정해주면 더 좋다.

실은 이전 포스트에서도 잠시 사용했는데 -cp가 classpath의 줄임말이다.

 

클래스 경로를 설정하지 않고 돌린다면 아래 코드 형태가 될 거다.

java -cp [자바 파일 이전까지의 path] [클래스 이름]
// 예시: 지금 위치에서 test라는 파일 안에 Sum.java가 있는 경우
java -cp ./test Sum

 

test파일 안에 있는 Sum.java 실행한 모습

Eclipse, BitBucket과 같은 IDE로 작성한 경우는 클래스 이름 앞에 패키지 이름을 더해준다.

java -cp [패키지까지의 경로] [패키지 이름].[클래스 이름]
// 예시
java -cp ./Summation/src sum.Sum

파일 구조 - IDE로 작성한 코드 실행한 모습

이제 classpath를 미리 설정해주면 아래처럼 지금 있는 폴더 위치부터 패키지 전까지의 경로를 설정해주면 된다.

set classpath=[경로]
//예시
set classpath=Summation/src

// 여러개의 classpath
set classpath=[경로1];[경로2]

잘 설정되었는지 확인해주면 설정한 경로가 나온다.

echo %CLASSPATH%
>>./Summation/src

이제 돌려보자

java [클래스 경로에 있는 파일 이름]
java Sum //-cp없이 됨

classpath 설정 후 실행한 모습

참고로 classpath 설정 시 지금 열고 있는 명령 창에서만 유효하다.

영구적으로 설정하고 싶으면 환경 변수 -> 시스템 변수 -> 새로 만들기를 누르고

CLASSPATH를 이름으로, 경로를 추가해주면 된다.

 

무튼 이젠 -cp명령어 없이 그냥 자바 파일을 돌릴 수 있게 되었다!

 

[path 임시로 추가하기]

그냥  추가로 적어보았다.

path도 미리 설정가능한데, %path%를 넣어주는 이유가

기존의 환경 변수에 이어서 새로운 변수를 추가해주기 위함이다.

// 현재 명령창에서만 해당
set path=%path%;[새로운 경로]
// 아래 코드는 영구적임
setx path=%path%;[새로운 경로]

 

 

 

[파일 입출력 명령창으로 돌리기]

조금 더 나아가서 입출력을 받는 자바 파일을 classpath와 path를 활용해서 돌려보자.

아래 코드는 실수가 담긴 파일(input.txt)을 읽고 그 합을 새로운 파일(output.txt)에 저장하는 코드이다.

Sum.java

package sum;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintStream;
import java.util.Scanner;

public class Sum {
	public static void main(String[] args) throws FileNotFoundException {
		PrintStream ps = System.out;
		Scanner sc = new Scanner(System.in);
		if (sc.hasNextLine()) {
			String fname = sc.nextLine();
			double sum = 0;
			sc = new Scanner(fname);
			while (sc.hasNext()) {
				sum += sc.nextDouble();
			}
			PrintStream ps2 = new PrintStream(new File("output.txt"));
			ps.printf("Sum of the numbers is: %.2f", sum);
			ps2.printf("Sum of the numbers is: %.2f", sum);
			sc.close();
		}
		
	}
}

input.txt

1.1 2.2 3.3 4.4 5.5 6.6 7.7 8.8 9.9

참고로 이클립스로 만들어서 파일 경로는 이렇게 되어있다.

파일 구조 - 코드 돌렸을때의 모습

ReadAndWrite 파일 밑에 input.txt가 있고 sum 패키지 안에 Sum.java가 있다.

 

이제 이 코드를 돌려보자

// ReadAndWrite위치 기준
set classpath=./src
javac ./src/sum/Sum.java
java sum.Sum < input.txt
>> Sum of the numbers is: 49.50

'java' 카테고리의 다른 글

윈도우 명령창에서 자바 프로그램 돌리기  (0) 2021.01.28

관련글 더보기

댓글 영역