2016-11-06 34 views
1

私のプロジェクトでは、apache.poiライブラリを使用してExcelファイルを処理しています。依存関係jarからクラスが見つかりません

  • apache.poi.ooxml_3.15
  • apache.poi_3.15
  • apache.poi.ooxml_schemas_3.15

瓶:私は上の依存関係を持っています。コンパイル時に問題はありません。ランタイムで :1つの作品正しく

import org.apache.poi.hssf.usermodel.HSSFWorkbook; 
    import org.apache.poi.ss.usermodel.Workbook; 
    import org.apache.poi.xssf.usermodel.XSSFWorkbook; 
    ... 
    Workbook workbook2003 = new HSSFWorkbook(); //1 
    Workbook workbook2007 = new XSSFWorkbook(); //2 

が行、2行目が例外をスローしながら:

Caused by: java.lang.ClassNotFoundException: org.apache.poi.ss.usermodel.Workbook cannot be found by org.apache.poi.ooxml_3.15.0 
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:461) 
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:372) 
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:364) 
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:161) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
... 41 more 

org.apache.poi.ss.usermodel.Workbookapache.poi_3.15にあるが、実行時のJVMの間にapache.poi.ooxml_3.15でそれを見つけようとしています。理由は分かりませんか?

誰かがこの問題を解決するのに役立つかもしれません。

プロジェクトの詳細: - Ide:eclipse neon.1 | - これはe4プロジェクトです - java 8

答えて

0

このライブラリには、おそらく2番目のケースで必要とされる他のランタイム拒否があります。プロジェクトをMavenプロジェクトとしてセットアップできますか? mavenは明示的に定義されたライブラリの依存関係にも注意を払うので、あなたの問題を解決するはずです。

2

XSSFWorkbookはOOXMLスキーマで動作するため、poi.ooxml jarからWorkbookクラスをロードします。 xmlbeams jarが実行時の依存関係としても必要であるため、このエラーが発生する可能性があります。

更新

commons-loggingcommons-codeccommons-collectionslog4j瓶もpoiのために必要とされます。輸入しているかどうか確認してください。これらのすべてのjarsはすでにダウンロードしたかもしれないpoi-bin-3.15-20160924ファイルにあります。さまざまなコンポーネントの前提条件については、this pageを参照してください。

これが役立ちますように!

+0

両方のジャーが追加されましたが、引き続き例外が発生します – Bublik

+0

@Bublikアップデートを確認してください。また、インポートされたjar 'poi' - >' poi.ooxml' - > 'poi.ooxml_schemas'の順番を確認してください。 –

関連する問題