簡體   English   中英

為什么在擴展TestCase類時無法找到或加載主類

[英]why cant find or load main class when extends TestCase class

我意外地遇到了一個有趣的錯誤,我需要你幫助我搞清楚。

至於下面的代碼,每件事都可以:

public class HelloWorld{
    public static void main(String[] args){
        System.out.println("hello world");
    }
}

那么跟隨代碼,有趣的東西來了。

import junit.framework.TestCase;

public class HelloWorld extends TestCase{
    public static void main(String[] args){
        System.out.println("hello world");
    }
}

當我跑它時,它說

無法找到或加載主類。

我知道當jvm加載HelloWorld class它會首先加載TestCase class 所以我做了下面的代碼段。

public class HelloWorld {
    public static void main(String[] args) throws ClassNotFoundException{
        Class.forName("junit.framework.TestCase");
    }
}

線程“main”中的異常java.lang.ClassNotFoundException:junit.framework.TestCase

我不知道為什么? 也許TestCase類不在我的類路徑上? 但至於第二個代碼段,我確保TestCase在我的類路徑上


所以我的問題是:

  1. 為什么我不能加載TestCase類?
  2. 為什么在擴展TestCase類時無法找到或加載主類?

注意:我知道print helloworld函數與TestCase class沒有任何關系,它曾用於junit測試,但我想找出導致這種驚喜的原因。

我不知道為什么? 也許TestCase類不在我的類路徑上? 但至於第二個代碼段,我確保TestCase在我的類路徑上。

 Class.forName("junit.framework.TestCase"); 

返回與TestCase類關聯的Class對象。 它沒有設置類路徑。

這就是你提出異常的原因:

線程“main”中的異常java.lang.ClassNotFoundException:junit.framework.TestCase

您嘗試加載不在類路徑中的類。

要解決Eclipse的問題,請進入項目的屬性窗口,然后在左側,您有Java Build Path選項,進入內部並查看庫選項卡。 在這里,如果希望JUnit位於類路徑中,則應添加JUnit庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM