Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 기호를 찾을 수 없음 오류의 원인은 무엇입니까?

<시간/>

현재 프로그램에서 외부 클래스/인터페이스(사용자 정의 또는 내장)를 사용해야 할 때마다 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