현재 프로그램에서 외부 클래스/인터페이스(사용자 정의 또는 내장)를 사용해야 할 때마다 import 키워드를 사용하여 현재 프로그램에서 해당 클래스를 가져와야 합니다.
그러나 클래스를 가져오는 동안 -
-
가져오는 클래스/인터페이스의 경로를 JVM에서 사용할 수 없는 경우
-
import 문에서 언급한 절대 클래스 이름이 정확하지 않은 경우(패키지 및 클래스 이름 포함)
-
사용한 클래스/인터페이스를 가져온 경우
"기호를 찾을 수 없습니다...."라는 예외가 표시됩니다.
예시
다음 예에서는 키보드(System.in)에서 사용자 이름을 나타내는 문자열 값을 읽으려고 합니다. 이를 위해 Java.Util의 스캐너 클래스를 사용하고 있습니다. 패키지.
public class ReadingdData { public static void main(String args[]) { System.out.println("Enter your name: "); Scanner sc = new Scanner(System.in); String name = sc.next(); System.out.println("Hello "+name); } }
컴파일 시간 오류
프로그램에서 Scanner라는 클래스를 사용하고 있고 프로그램에서 가져오지 않았기 때문입니다. 실행 시 이 프로그램은 다음 컴파일 시간 오류를 생성합니다. -
ReadingdData.java:6: error: cannot find symbol Scanner sc = new Scanner(System.in); ^ symbol: class Scanner location: class ReadingdData ReadingdData.java:6: error: cannot find symbol Scanner sc = new Scanner(System.in); ^ symbol: class Scanner location: class ReadingdData 2 errors
해결책
-
필요한 클래스 인터페이스가 있는 JAR 파일에 대한 클래스 경로를 설정해야 합니다.
-
가져오기를 사용하여 패키지에서 필요한 클래스 가져오기 예어. 가져오는 동안 필요한 클래스의 절대 이름(패키지 및 하위 패키지 포함)을 지정해야 합니다.
예시
import java.util.Scanner; public class ReadingdData { public static void main(String args[]) { System.out.println("Enter your name: "); Scanner sc = new Scanner(System.in); String name = sc.next(); System.out.println("Hello "+name); } }
출력
Enter your name: krishna Hello krishna