java.lang.ClassNotFoundException: org.openxmlformats.schemas.wordprocessingml.x2006.main.impl.CTPIm

在使用poi對office文檔進行操作的時候,具體一點,就是在調用CTP.getBookmarkStartList()的時候,出現了一個異常,粘貼如下:


Exception in thread “main” Java.lang.NoClassDefFoundError: org/openxmlformats/schemas/wordprocessingml/x2006/main/impl/CTPImpl1BookmarkStartListatorg.openxmlformats.schemas.wordprocessingml.x2006.main.impl.CTPImpl.getBookmarkStartList(UnknownSource)atpac.ReportGenerator.handleParagraph(ReportGenerator.java:152)atpac.ReportGenerator.getUniqueData(ReportGenerator.java:129)atpac.ReportGenerator.main(ReportGenerator.java:62)Causedby:java.lang.ClassNotFoundException:org.openxmlformats.schemas.wordprocessingml.x2006.main.impl.CTPImpl1BookmarkStartList 
at java.NET.URLClassLoader1.run(Unknown Source)  
    at java<a href="http://lib.csdn.net/base/dotnet" class='replace_word' title=".NET知識庫" target='_blank' style='color:#df3434; font-weight:bold;'>.Net</a>.URLClassLoader
1.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source)


這個問題折騰了我一天,因爲這裏提到的這個class實際上在我引用的poi-ooxml-schemas-3.12-20150511.jar包裏面是存在的,但是卻一直報找不到類的異常。然後查資料的時候看到有人說還需要引用ooxml-schemas.jar這個包,然後我就百度了一下下載了一個1.0版的,結果還是老樣子,然後就以爲這個方向是錯的。最後折騰了好久纔在poi官網的FAQ部分看到了一個回答,鏈接爲http://poi.apache.org/faq.html ,貼一下圖: 
這裏寫圖片描述
根據這個回答,poi提供的那個ooxml-schemas.jar包是精簡版的,爲了節省空間,裏面放的只有一些常用的模塊,所以要引用另外一些功能的話就需要引用完全版的ooxml-schemas.jar包。另外,3.5和3.6版本的poi對應的完整版的jar包是1.0版的,如果要用3.7及以上的,就需要用ooxml-schemas-1.1.jar這個包了,這樣導入之後果然就好了。 
總結一下,遇到這個問題需要導入ooxml-schemas-1.1.jar這個包.

本人已在自己的博客上上傳了ooxml-schemas-1.1.jar這麼包,有需要的朋友可以自行下載

發佈了78 篇原創文章 · 獲贊 26 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章