2013-08-16 3 views
0

다음 코드는 추상 클래스, 추상 클래스를 확장하는 구체적인 클래스 및 기본 메소드입니다. JGRASP에서 컴파일되고 실행될 때 오류가 없습니다. 내가 이클립스에서 실행하면, 그냥 실행되지 않지만 오류가 생성되지 않습니다. 나는 Product.java 파일에 이름을 붙였다.이클립스에서이 프로그램을 실행할 수는 없지만 JGRASP에서 작동합니다.

abstract class Product { 
    int value; 

    public Product(int val) { 
     value = val; 
    } 

    abstract public int multiply(int n); 
} 

class TimesTwo extends Product { 
    public TimesTwo(int val) { 
     super(val); 
    } 

    @Override 
    public int multiply(int n) { 
     return value * n; 
    } 

    public static void main(String[] args) { 
     TimesTwo two = new TimesTwo(5); 
     System.out.println(two.multiply(5)); 
    } 

} 

가 나는 또한 명령 행에서 실행하려고 : 나는 Product.class 얻을

javac Product.java 

TimesTwo.class

내가 실행 Java TimesTwo.class 또는 Java Product.class

다음

코드입니다

얻을 수 Exception in thread "main" java.lang.NoClassDefFoundError:

+0

작품을 실행할 때. Eclipse에서 어떻게이 프로그램을 실행하고 있습니까? TimesTwo -> Run as -> Java App를 마우스 오른쪽 버튼으로 클릭하고 있습니다. –

+0

파일 이름이 Product.java 인 경우 어떻게 실행할 수 있습니까? Reimeus가 작동하도록하려면 아래에 언급 된대로 분리해야하며 어떻게 일식에서 TimesTwo를 얻었습니까? 당신은 Product.Java라는 이름의 파일 만 가지고 있기 때문에 ... –

답변

3

Eclipse을 실행하기 전에 TimesTwo.java이 별도의 Java 소스 파일로 존재하는지 확인하십시오.

+0

사실,이 파일은 Product.java라는 이름의 파일에도 적용됩니다. –

+0

나눠 줄 때까지 나에게 실행 구성을 제공하지 않았어 :) – Reimeus

+0

클래스 자체를 클릭했습니다. 파일이 아닙니다. 어쩌면 그 차이가 있습니다. –

0

당신은 public classTimesTwo을 변경하고 다음과 같이 명령을 실행하려고합니다

java TimesTwo 

는 결말에서 더 .class 없다 나를 위해 클래스를

관련 문제