2012-05-14 110 views
1

當我搜索類文件我使用DeferredTextImpl類和Eclipse似乎並不抱怨,但是當我跑我的項目,我得到運行時異常.... Class not found exception for DeferredTextImpl ..爲什麼我收到類未發現異常

,我發現它在rt.jar這應該肯定是在類路徑。我還檢查了項目properties->Java build path中的構建路徑,並且可以在最底部看到JRE系統庫。當我擴展它。我可以看到rt.jar。這意味着它在課堂上,對嗎?

爲什麼我會收到此錯誤?

+0

您正在使用J2SE應用程序還是J2EE應用程序? – Logan

回答

1

檢查您的Xerces Jarces jar版本與您的編譯時間類相比。確保在運行時有一個Xerces2 jar。我懷疑rt.jar中的類是你的應用程序正在尋找的類。

+0

這是我能找到的...... //從DeferredTextImpl.java編譯(版本1.5:49.0,超級位) –

+0

記住類可以具有相同的名稱完全限定標識符是classloader + package + name。很可能有多個DeferredTextImpl.class文件。找到xerces.jar並確保它在你的運行時路徑上。我敢打賭你會感到驚喜。 – nsfyn55

+0

會嘗試..謝謝 –

3

當您運行代碼時,Eclipse中的構建路徑類路徑之間存在差異。構建路徑用於編譯您的代碼。類路徑是您的應用程序運行時的內容。

的構建路徑配置了項目 - >屬性 - > Java構建路徑

類路徑配置了運行 - >運行配置 - >類路徑

在你的情況,你還應該檢查(如其他人所說),如果在運行配置指向同一個JRE的JRE選項卡,在您的構建路徑。

1

該類是特定DOM實現(Apache Xerces)的一部分。它不是公共Java API的一部分,如果你真的在一個JVM的運行時類庫中找到它,這不能保證它會在其他的。如果您需要顯式使用Xerces,那麼您需要在運行時類路徑中明確包含Xerces庫。

1

你可以嘗試在運行代碼時通過顯式添加rt.jar和-jar選項來運行代碼嗎?如果這樣做,那麼這意味着eclipse中的rt.jar不在classpath中。

0

右鍵單擊項目> java構建路徑>庫 刪除JRE並添加指向JDK文件夾的庫(在我的情況下爲C:\ Program Files \ Java \ jdk1.7.0_55)。 但在此之前,用java安裝JRE也是如此。 Windows> java>安裝了JRE。 希望這會有所幫助