2014-01-25 4 views
1

이 코드에서 main 메소드를 어떻게 실행합니까? 컴파일 시간 오류 또는 런타임 오류가 있는지 확인하고 싶습니다. 그러나 "주 클래스 응용 프로그램을 찾지 못했거나로드 할 수 없습니다."라는 오류 메시지가 나타납니다.오류 : 메인 클래스를 찾지 못하거나로드 할 수 없습니다. 응용 프로그램

class Book { 
private static int internalID = 0; 
private String isbn; 
private int myID; 

public Book(String isbnP) { 
    if (isbnP == null) { 
     throw new IllegalArgumentException("null ISBN not accepted"); 
    } 
    isbn = isbnP; 
    myID = internalID++; 
} 

public String getBookinfo() { 
    return isbn; 
} 

public String toString() { 
    return "<" + myID + "," + isbn + ">"; 
} 
// To Do: Override Object.equals() 
// Two objects are equal iff isbn of the two books are same 

} 

class ComSBook extends Book { 
private String category; 

public ComSBook(String isbnP, String catP) { 
    super(isbnP); 
    category = catP; 
} 

@override 
public String getBookInfo() { 
    return "ComS " + category + " " + super.getBookinfo(); 
} 
} 

class NetworkBook extends ComSBook { 
private boolean isWithCD; 

public NetworkBook (String isbnP, boolean withCD){ 
    super(isbnP,"Network"); 
    isWithCD = withCD; 
} 
@override 
public String getBookInfo(){ 
    return super.getBookInfo() + " withCD: " + isWithCD; 
} 
} 


class ReviewPolymorp{ 
public static void main(String[] args){ 
    Book abook = new Book("A-1"); 
    Book bbook = new Book("B-1"); 
    ComSBook csbook = new ComSBook("C-11", "General"); 
    NetworkBook netbook = new NetworkBook("N-11", true); 

    System.out.println(abook); 
    System.out.println(bbook); 
    System.out.println(csbook); 
    System.out.println(netbook); 

    abook = csbook; 
    System.out.println(abook.getBookinfo()); 

    bbook = netbook; 
    System.out.println(bbook.getBookinfo()); 

    netbook = (NetworkBook) bbook; 
    System.out.println(netbook.getBookinfo()); 

    netbook = (NetworkBook) csbook; 
    System.out.println(netbook.getBookinfo()); 

    netbook = csbook; 

} 
} 

답변

2

당신이있는 거 파일 ReviewPolymorp.java해야하며 class ReviewPolymorp{

당신은 또한 프로젝트의 메인 클래스가 있는지 확인 할 수 main 방법으로 프로그램의 그 이후 런칭 점, public해야한다 ReviewPolymorp. 난 단지 실행을 클릭

  • 이 있는지 확인
    • 프로젝트
    • 선택 속성을 마우스 오른쪽 버튼으로 클릭 넷빈즈

      에서이 작업을 수행하는 방법을 알고 당신의 ReviewPolymorp 내가 예를 들어, 정규화 된 이름을 가진 메인 클래스

      netbook = csbook; 
      

      당신은 인스턴스를 캐스팅 할 수 없습니다 mypackage.ReviewPolymorp

    • 는 그럼 난 내 IDE (그것의 일식)에 코드를 복사 할 때 컴파일 오류가이 라인에 표시
  • 0

    프로젝트 다시 슈퍼 클래스에서 서브 클래스로.

    은 비활성화이 선 후, 나는 콘솔에서 출력 한 번 코드를 실행할 수 :

    <0,A-1> 
    <1,B-1> 
    Exception in thread "main" <2,C-11> 
    <3,N-11> 
    C-11 
    N-11 
    N-11 
    java.lang.ClassCastException: com.test.ComSBook cannot be cast to com.test.NetworkBook 
    at com.test.ReviewPolymorp.main(ReviewPolymorp.java:75) 
    

    그것은 위의 컴파일 오류와 같은 문제입니다.

    해제 후이 세 줄

    netbook = (NetworkBook) csbook; 
    System.out.println(netbook.getBookinfo()); 
    csbook = netbook; 
    

    코드 수정없이 잘 작동합니다.

    관련 문제