IT이야기/JAVA

[DURGA 코딩 인터뷰] public static void main() 자바 1.7부터의 특징

FelixShin 2016. 4. 24. 16:23
반응형

public static void main() JAVA 1.7에서 향상됨



1.  클래스에 main()가 없다면

(실행 내용 : Test 실행)

javac Test.java (클래스명 임의로 Test로 설정)

java Test


버전에 따라 아래와 같은 에러가 표출


JAVA 1.6버전(1.7버전 전) : NoSuchMethodError:main

JAVA 1.7버전(1.7버전부터) : Error:Main method not found in class Test, please define main method as public static void main(String[] args)


(1.7버전 이상에서 오류메시지)

오류: test1.test2 클래스에서 기본 메소드를 찾을 수 없습니다. 다음 형식으로 기본 메소드를 정의하십시오.

   public static void main(String[] args)

또는 JavaFX 응용 프로그램 클래스는 javafx.application.Application을(를) 확장해야 합니다.


2. main메쏘드 없으나 System.print.Out을 실행시

(클래시 코딩내용)


(결과)

JAVA 1.7부터 main method는 의무적(mandatory)임 -> 클래스가 static 블록이 있어도 실행이 안됨


위의 표에서 처럼

1.6이하 버전에서 main method가 없어도 static block이라는 메시지가 출력되나

1.7이상 버전에서는 실행이 안됨


3. 위의 예에서 System.exit(0)추가 한다면

(클래스 코딩 내용)


(결과)

아래와 같이 JAVA 1.6이하, 1.7이상 버전 컴파일 문제 없음,

JAVA 1.6버전(1.7버전 전) : 컴파일 문제 없음, static block 출력되고 에러 문구 없음

JAVA 1.7버전(1.7버전부터) : 

Error:Main method not found in class Test, please define main method as public static void main(String[] args)



4. static과 메인메쏘드를 같이 붙일 때


(코딩 내용)


(결과)

아래와 같이 JAVA 1.6이하, 1.7이상 버전 컴파일 문제 없음, but 출력 순서 같음,