// 기본적인 import 예시
import java.util;
import java.util.*; // util내부의 모든 패키지에 접근
■ static import
static import를 사용하면 static 멤버를 클래스 이름을 명시하지 않고 접근이 가능하다.
주로 가독성을 위해 쓰이나, 너무 남발하면 오히려 가독성을 해치니 조심하자 -_-;;
// static import 예시
import static java.lang.System.*;
public class Main {
public static void main(String[] args) {
out.println("안녕"); // System 클래스를 명시하지 않고도 println()을 사용 가능
}
}
■ 이중 충돌 방지
Data라는 클래스를 가진 두 개의 패키지가 존재한다.
먼저, 컴파일 에러를 발생시키는 예시이다.
이때 util과 sql에 Date라는 클래스가 겹치기 때문에 컴파일러가 어느 것을 사용하는지 모르게 된다.
// 컴파일 에러
import java.util.*;
import java.sql.*;
Date today;
만약, util만 Date를 사용하고 sql은 사용하지 않는다면 아래와 같이 사용할 수 있다.
// util만 Date클래스 사용
import java.util.Date;
import java.sql.*;
마지막으로 util과 sql 둘 다 Date클래스를 사용해야 한다면, 변수 선언 시에 패키지 명까지 기술해야 한다.
// util과 sql 모두 Date 클래스 사용
java.util.Date d1 = new java.util.Date();
java.sql.Date d2 = new java.sql.Date();
클래스패스
■ 클래스패스란?
이름에서도 알 수 있듯이, 클래스를 찾기 위한 경로를 말한다.
JVM이 프로그램을 실행할 때 클래스 파일을 찾게 되는데, 이때 클래스패스를 사용한다.
※ 그러나, 요즘에는 /jre/lib/ext 폴더에 필요한 라이브러리를 복사하면 사용이 가능하기 때문에 특별한 경우가 아니면 잘 사용하지 않는다.
■ 클래스패스 설정 방법
"java -classpath 클래스파일위치 클래스명"
> 만약 설정하지 않으면 현재 디렉터리 안에서 클래스를 찾게 된다.
CLASSPATH 환경변수
아마 대부분의 사람들이 위의 클래스패스 설정을 프로젝트마다 하지는 않을 것이다(아마도)
너무 귀찮기 떄문이다.
그래서 하나하나 설정을 하지 않고 환경변수로 등록해놓으면 "java -classpath"를 사용하지 않아도 클래스를 찾을 수 있다.
나는 현재 Windows이기 때문에... 이러한 기준으로 설정방법을 본다면....
■ 환경변수 설정 방법
내 컴퓨터 -> 속성 -> 고급 시스템 설정 -> 고급 -> 환경변수 -> 시스템 변수 -> Path