Computer Science/Java

[Java] 자바 클래스패스 (CLASSPATH) 확인/등록/사용 (Linux bash)

2021. 2. 9. 13:07

1. CLASSPATH 확인

1) 코드

class Practice {
	public static void main(String[] args) throws Exception {
    	/* Class path를 한줄로 확인 가능 */
		System.out.println(System.getProperty("java.class.path"));
        
    	/* Class path를 여러 줄로 나누어 확인 가능 (Windows)*/
		for(String element : System.getProperty("java.class.path").split(";")) {
			System.out.println(element);
		}
        
        /* Class path를 여러 줄로 나누어 확인 가능 (Linux)*/
		for(String element : System.getProperty("java.class.path").split(":")) {
			System.out.println(element);
		}
	}
}


2) Bash (리눅스 커맨드창)

$ echo $CLASSPATH
$ env | grep CLASSPATH

 

2. CLASSPATH 등록

1) 여러 명의 사용자가 공동으로 사용하고자 할 때 (시스템 환경변수, system environment variable)

root 계정으로 /etc/profile 편집

source "/path/classpath.txt"

export CLASSPATH

/path/classpath.txt에는 아래와 같이 넣어준 후 source /etc/profile

CLASSPATH=$CLASSPATH:path1:path2:path3/test.jar

 

2) 한 명의 사용자가 사용하고자 할 때 (사용자 환경변수, user environment variable)

export CLASSPATH=$CLASSPATH:path1:path2:path3/test.jar

이를 ~/.bashrc 혹은 ~/.bash_profile 파일 끝에 붙여넣어 준 후 source 파일명 (export를 그냥 명령어 창에 입력하면 현재 터미널에만 1회성으로 적용된다).

 

※ Jar 파일 여러 개가 든 폴더를 등록할 때

Wildcard인 "*"을 사용 (ex. "path/*")

 

주의해야할 점은 path/*.jar이 아니라 path/* 이다.

 

 

3. CLASSPATH 사용

따로 CLASSPATH를 등록하지 않더라도 -cp 옵션을 통해 CLASSPATH를 지정할 수 있다.

$ java -cp /java/class/:/java/lib/* test.Test

이때 주의해야할 점은 -cp 옵션을 사용하면 기존에 등록된 CLASSPATH는 모두 무시하고 옵션으로 받는 경로만 CLASSPATH로 사용한다.

 

Reference

 

 

728x90
반응형