소개
class, interface, or enum expected 오류는 Java 에서 흔히 발생하는 컴파일 시간 오류입니다. 이 오류는 중괄호 누락, 메서드가 클래스 외부에 위치하거나, 단일 파일에 여러 패키지가 선언된 경우 발생합니다. 이 Lab 에서는 Java 에서 이 오류를 해결하는 방법에 대해 논의하겠습니다.
class, interface, or enum expected 오류는 Java 에서 흔히 발생하는 컴파일 시간 오류입니다. 이 오류는 중괄호 누락, 메서드가 클래스 외부에 위치하거나, 단일 파일에 여러 패키지가 선언된 경우 발생합니다. 이 Lab 에서는 Java 에서 이 오류를 해결하는 방법에 대해 논의하겠습니다.
다음 명령을 사용하여 ~/project 디렉토리에 Demo.java라는 새 Java 파일을 생성합니다.
touch Demo.java
다음 코드를 Demo.java 파일에 복사하여 붙여넣습니다.
package com.example;
public class Demo {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
public class SomeClass {
// do something
}
파일을 저장하고 터미널에서 다음 명령을 실행합니다.
javac Demo.java
다음 오류 메시지가 표시됩니다.
Demo.java:6: error: class, interface, or enum expected
public class SomeClass {
^
1 error
이 오류는 메인 클래스 Demo 외부에 추가 클래스가 있음을 나타냅니다.
다음 코드를 Demo.java 파일에 복사하여 붙여넣습니다.
package com.example;
public class Demo {
public static void main(String[] args) {
int a = 10, b = 15;
System.out.print("The Sum is: " + (a + b));
}
}
파일을 저장하고 터미널에서 다음 명령을 실행합니다.
javac Demo.java
다음 오류 메시지가 표시됩니다.
Demo.java:7: error: ';' expected
System.out.print("The Sum is: " + (a + b));
^
1 error
이 오류는 main 메서드의 끝에 중괄호가 누락되었음을 나타냅니다. 오류를 수정하려면 print 문 뒤에 닫는 중괄호를 추가합니다.
package com.example;
public class Demo {
public static void main(String[] args) {
int a = 10, b = 15;
System.out.print("The Sum is: " + (a + b));
}
}
파일을 저장하고 다음 명령을 다시 실행합니다.
javac Demo.java
이번에는 오류 없이 코드가 컴파일됩니다.
다음 코드를 Demo.java 파일에 복사하여 붙여넣습니다.
package com.example;
package com.example.test;
public class Demo {
public static void main(String[] args) {
int a = 10, b = 15;
System.out.print("The Sum is: " + (a + b));
}
}
파일을 저장하고 터미널에서 다음 명령을 실행합니다.
javac Demo.java
다음 오류 메시지가 표시됩니다.
Demo.java:3: error: class, interface, or enum expected
package com.example.test;
^
1 error
이 오류는 동일한 파일에 여러 패키지가 선언되었음을 나타냅니다. Java 에서는 파일당 하나의 패키지만 선언할 수 있습니다. 오류를 수정하려면 추가 패키지 선언을 제거합니다.
package com.example;
public class Demo {
public static void main(String[] args) {
int a = 10, b = 15;
System.out.print("The Sum is: " + (a + b));
}
}
파일을 저장하고 다음 명령을 다시 실행합니다.
javac Demo.java
이번에는 오류 없이 코드가 컴파일됩니다.
class, interface, or enum expected 오류는 중괄호 누락, 클래스 외부의 메서드, 또는 단일 파일 내의 여러 패키지와 같은 다양한 이유로 발생합니다. 이 랩의 단계를 따르면 이 오류를 쉽게 해결할 수 있습니다. 누락된 중괄호가 있는지 코드를 확인하고 파일당 하나의 패키지 선언만 있는지 확인하십시오.