2010-03-13 49 views
0

这里我正在下载一个网页源代码,然后将其存储在文本文件中。然后我读取该文件并将其与正则表达式匹配以搜索特定的字符串。Java NoClassDefFoundError

没有编译器错误。

Exception in thread "main" java.lang.NoClassDefFoundError: java/lang/CharSequence 

有人可以告诉我我在哪里错了。

java version "1.3.1_01" 
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_01) 
Java HotSpot(TM) Client VM (build 1.3.1_01, mixed mode) 

 

import java.io.*; 
import java.net.*; 
import java.lang.*; 
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 
public class WebDownload 
{ 
    public void getWebsite() 
    { 
    try{ 
    URL url=new URL("www.gmail.com");// any URL can be given 
    URLConnection urlc=url.openConnection(); 
    BufferedInputStream buffer=new BufferedInputStream(urlc.getInputStream()); 
    StringBuffer builder=new StringBuffer(); 
    int byteRead; 
    FileOutputStream fout; 
    StringBuffer contentBuf = new StringBuffer(); 

    while((byteRead=buffer.read()) !=-1) 
    { 

     builder.append((char)byteRead); 



     fout = new FileOutputStream ("myfile3.txt"); 


      new PrintStream(fout).println (builder.toString()); 

      fout.close(); 


    } 
    BufferedReader in = new BufferedReader(new FileReader("myfile3.txt")); 
String buf = null; 
while ((buf = in.readLine()) != null) { 
contentBuf.append(buf);contentBuf.append("\n"); 
} 
in.close(); 
Pattern p = Pattern.compile("<div class=\"summarycount\">([^<]*)</div>"); 
Matcher matcher = p.matcher(contentBuf); 
if(matcher.find()) 
    { 
    System.out.println(matcher.group(1)); 
    } 
    else 

    System.out.println("could not find"); 
    } 
    catch(MalformedURLException ex) { 
    ex.printStackTrace(); 
    } 
    catch(IOException ex){ 
     ex.printStackTrace(); 
    } 



    } 
    public static void main(String [] args) 
    { 
    WebDownload web=new WebDownload(); 
    web.getWebsite(); 
    } 
} 
+2

声音像运行时的​​版本比你编译的版本要低。 – bzlm 2010-03-13 19:02:29

回答

1

从API :: java.lang.NoClassDefFoundError - 如果Java虚拟机或ClassLoader实例试图在类的定义中加载时抛出(作为的一部分正常的方法调用或作为使用新表达式创建新实例的一部分),并且不能找到该类的定义。

它听起来像是你要么缺乏必要的库,要么他们不在你的PATH中。我会先在那里检查。

此外,请检查您的JAVA_HOME \ lib您正在导入的类。

1

你可能使用1.3 JVM来执行代码?这将解释错误,如果代码编译为1.3兼容性(或更低),但针对1.4或更高版本的JRE库。

0

看起来你正在用java 1.3运行你的应用程序。你能输入java -version并粘贴输出吗? 你在什么样的操作系统?你如何运行你的应用程序?

0

CharSequence接口自Java 1.4以来才存在,但是您正在运行Java 1.3。该接口由您在代码中使用的StringBuffer类使用。目前的Java版本是Java 6 - 如果可以的话,我会建议更新。