我下载了一个poi包,用来读取word文档内容,看了很多例子都是同样的操作,但实际操作时总是报错,求解。
代码如下:package wordtotxt;import java.io.*;import org.textmining.text.extraction.WordExtractor;public class ReadWord {
public static String readDoc(String doc) throws Exception { 
    // 创建输入流读取DOC文件 
     FileInputStream in = new FileInputStream(new File(doc)); 
     WordExtractor extractor = null; 
     String text = null; 
    // 创建WordExtractor 
     extractor = new WordExtractor(); 
    // 对DOC文件进行提取 
     text = extractor.extractText(in); 
    return text; 

public static void main(String[] args)throws Exception{
try{ 
            String text = ReadWord.readDoc("F:/测试.doc"); 
            System.out.println(text); 
         }catch(Exception e){ 
             e.printStackTrace(); 
         } 
}
}
报错如下:Exception in thread "main" java.lang.NoSuchMethodError: org.apache.poi.poifs.filesystem.POIFSFileSystem.getRoot()Lorg/apache/poi/poifs/filesystem/DirectoryEntry;
at org.textmining.text.extraction.WordExtractor.extractText(WordExtractor.java:51)
at wordtotxt.ReadWord.readDoc(ReadWord.java:16)
at wordtotxt.ReadWord.main(ReadWord.java:23)求解!!!

解决方案 »

  1.   

    java.lang.NoSuchMethodError  这个jar包里定义了这样的方法吗?还是你忘记导入jar包 了
      

  2.   

    我自己下载的一个包,看了一下,好像真没有那个方法!
    那请问谁有org.textmining.text.extraction.WordExtractor这个包啊,里面要有WordExtractor这个方法。求救!!!!
      

  3.   


    http://www.findjar.com/class/org/textmining/text/extraction/WordExtractor.html
    你看看是这个吗?
      

  4.   

    http://www.jar114.com/j/10002这个好像就是的了
      

  5.   

    你是用的什么版本的MyEclipse?这么跟你说吧,MyEclipse其实已经自带了poi的jar包,不过是那种版本很低的那种,J2EE的项目在导入了你自己的poi的jar的时候MyEclipse自带的poi的jar包会自动加入,导致你在编程的时候引用的jar包会是低版本的,我在做execl的导入导出以及PPT的导出的时候就遇到过这个问题,就像我的是用的poi-3.7-20101029.jar,而tomcat的Lib目录下会多一个poi-3.0.1.jar,这个东西害人不浅啊,我上次跟同事和版本的时候我这边代码是没问题的,而他那边直接是编译失败,我这边的开发完全是用的3.0的版本做的....就一个杯具啊,LZ自己好好看看你自己在java文件里引用的那个类是哪个JAR包里的吧
      

  6.   


    版本
    Eclipse Project Release Notes
    Release 3.6.1
    Last revised September 8, 2010我导入好像没有错啊,我的机子没有配置tomcat