2011-12-07 24 views
0

我正在開發一些Java中使用fitnesse slim的燈具。我遇到的問題(例外:java.lang.NoClassDefFoundError :)當我必須用這樣的路徑更新我的根頁:FitNesse SliM - 對.class文件的根頁面引用許多不同的項目

!define TEST_SYSTEM {slim} 
!path: C:\WORKSPACE\Projects\iperoom_67_workspace\acceptance_test_project\bin 
!path: C:\WORKSPACE\Projects\iperoom_67_workspace\iperoom\BASE\common_util\target\classes 
!path C:\WORKSPACE\Projects\iperoom_67_workspace\iperoom\BASE\dfc_util\target\classes 

凡即一類... BASE \ dfc_util \目標\班;有以下進口:

import no.joint.iperoom.test.AbstractDfcTest;

代碼 。 。 。

,其給出了我的本地驅動器C的工作空間的完整路徑:

C:\ workspace下\項目\ iperoom_67_workspace \ iperoom \ BASE \ dfc_util \目標\類\不\合資\ iperoom \測試

我的問題是我可以說,在根頁面上:

classpath:C:\ WORKSPACE \ Projects \ iperoom_67_workspace \ iperoom \ BASE *;就像從這裏接收所有的.class文件一樣。更一般的東西? ,並可能在fitnesse測試頁上導入幾個pat文件到.class文件:

| import | | dfc_util.target.classes.no.joint.iperoom.test.AbstractDfcTest |

還有沒有其他的更好的方法來解決這個問題,因爲我的根頁面中越來越多的'!路徑'由於從antoher .class等調用另一個.class類的.class類來解決這個問題。

或者,也許我的固定代碼不夠好:

公共類SessionHelperTest/延伸AbstractDfcTest/{

public boolean testNewSession() { 

    System.out.println("Hello Joint"); 


    IDfSession session = SessionRegistry.getSuperUserSession("eRoomPCI_v_1_1"); 
try { 
     String si = session.getSessionId(); 
     System.out.println("The sessionId is:\n" + si); 
     return true; 
    } catch (DfException e) { 
     e.printStackTrace(); 
     return false; 
    } 
} 
} 

乾杯

馬格努斯

回答

0

我不認爲路徑將按照你想要的方式工作。如果你定義的級別太低,我很確定它找不到你的課程。

!path build/classes 

:在

這將讓所有的編譯/類下的類文件,如果是文件夾FitNesse的下啓動:當你做任何的下列

的路徑工作正常這將處理多個jar文件:

!path lib/*.jar 

需要注意的是,您可以利用環境變量來實現此目的。假設您已經定義了名爲workspace的環境變量指向你的項目的基礎上,你可以這樣做:

!path ${WORKSPACE}/acceptance_test_project/bin 
!path ${WORKSPACE}/acceptance_test_project/common_util/target/classes 
!path ${WORKSPACE}/acceptance_test_project/dfc_util/target/classes 

現實情況是,如果你的文件分散在多個文件夾,你將不得不使用多個條目。如果只是爲了確保您可以控制路徑的處理順序。如果您只在FrontPage上執行此操作,那麼它下面的所有內容都將繼承相同的路徑。那麼你只需要在一個位置管理它。因此,雖然列表可能會比您更喜歡的時間更長,但維護工作將得到管理。

相關問題