2010-08-22 7 views
4

Possible Duplicate:
Exception in thread “main” java.lang.NoSuchMethodError: main예외 :

주요 나는 위의 메시지를 받았습니다. 코드는 다음과 같습니다.

class Test 
{ 
public static void main(String ar[]) 
{ 
    printf("hai"); 
} 
} 

이 문제는 어떻게 발생하며 어떻게 해결할 수 있습니까?

+0

저는 혼란 스럽습니다. 어떻게 컴파일 했습니까? 내 테스트 :'Sandbox.java:27 : 기호 기호를 찾을 수 없습니다. 메서드 printf (java.lang.String)' – TheLQ

+1

@Lord : 그가 실행중인 클래스를 실행하고 있지 않다는 의심 만 듭니다. – BalusC

+0

http://stackoverflow.com/questions/5407250/causes-of-java-lang-nosuchmethoderror-main-exception-in-thread-main –

답변

4
현재 예외를 (BalusC의 답변을 참조) 일으키는 문제뿐만 아니라, 자바 적절한에 "Hello World"입니다

:

class Test 
{ 
    public static void main(String[] args) { 
     System.out.println("hai"); 
    } 
} 

참조 : 나는 당신의 문제를 볼 java.lang.System

+0

그럴 경우 ** 예외 **가 발생했을 때 * '메인'을 실행합니다. – BalusC

+0

정상적인 방법은 타입 선언에 중괄호를 쓰는 것입니다. – BalusC

+1

기본 [arrays tutorial] (http://download.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html)에서 : * 그러나 대회는이 형식을 낙담시킨다. 대괄호는 배열 유형을 식별하며 유형 지정과 함께 나타나야합니다. * – BalusC

1

의 서명이 올바르지 않습니다. public static void main (String [] args)

+2

좋은 관찰이지만 원인은 아닙니다. – trashgod

+2

그러나 그것은 ** 문법적으로 ** 정확합니다. – BalusC

+0

@trashgod : 나는 자바에서도 새롭다. 나는 이런 식으로 쓸 수 있는지 모른다. C#에서는 불법입니다. – LLS

6

실행하려는 클래스에 main 메서드가 없습니다. 당신은 잘못된 클래스를 실행하고

  1. : 당신의 main 방법은 문법적으로 잘 보이는 때문에

    ,이 두 가지 원인이있을 수 있습니다.

  2. 실제 클래스 파일에는이 코드가 들어 있지 않습니다.

이 솔루션은 분명하다 :

  1. 는 명령이 올바른 클래스 파일을 가리키고 있는지 확인하십시오, 당신은 같은 이름을 가진 여러 개의 클래스 파일이있을 수 있습니다 잘못된 디렉토리에 앉아 될 수있다.
  2. 이전에 올바른 소스 파일을 올바른 클래스 파일로 컴파일했는지 확인한 후에 다른 소스 파일을 편집하고 다시 컴파일하는 것을 잊었을 수 있습니다.
+0

다른 의견에서 의미하는 바를 지금 봅니다. – trashgod

1

Eclipse를 혼란스럽게 만들고 클래스를 실행할 때 클래스를 찾을 수없는 클래스 경로 문제 일 수도 있습니다. 오류가 없는지 확인하기 위해 Project Properties에서 Java Build Path를 살펴볼 것이다.