不是没有main函数的问题。环境变量也设置成功。
代码如下
import com.sun.syndication.feed.synd.SyndFeed;import com.sun.syndication.io.SyndFeedInput;import com.sun.syndication.io.XmlReader;
import java.net.*;
public class Writer {
public Writer(){
        System.out.println("Start...");
        String str ="http://wyzwz527.blogbus.com/index.rdf";
        boolean ok = false;
        try {         
            URL feedUrl = new URL(str);
            SyndFeedInput input = new SyndFeedInput();
            SyndFeed feed = input.build(new XmlReader(feedUrl));
            System.out.println(feed);
          ok = true;
        }
        catch (Exception ex) {
            ex.printStackTrace();
            System.out.println("ERROR: "+ex.getMessage());
        }
        if (!ok) {
            System.out.println();
            System.out.println("FeedReader reads and prints any RSS/Atom feed type.");
            System.out.println("The first parameter must be the URL of the feed to read.");
            System.out.println();
        }

}
    public static void main(String[] args){
     new Writer();    }}没任何语法错误,就是编译之后报错
Start...
Exception in thread "main" java.lang.NoSuchMethodError: com.sun.syndication.io.impl.BaseWireFeedParser.<init>(Ljava/lang/String;)V
at com.sun.syndication.io.impl.OPML10Parser.<init>(OPML10Parser.java:46)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at com.sun.syndication.io.impl.PluginManager.loadPlugins(PluginManager.java:90)
at com.sun.syndication.io.impl.PluginManager.<init>(PluginManager.java:55)
at com.sun.syndication.io.impl.PluginManager.<init>(PluginManager.java:46)
at com.sun.syndication.io.impl.FeedParsers.<init>(FeedParsers.java:53)
at com.sun.syndication.io.WireFeedInput.getFeedParsers(WireFeedInput.java:64)
at com.sun.syndication.io.WireFeedInput.build(WireFeedInput.java:273)
at com.sun.syndication.io.WireFeedInput.build(WireFeedInput.java:195)
at com.sun.syndication.io.SyndFeedInput.build(SyndFeedInput.java:123)
at Writer.<init>(Writer.java:15)
at Writer.main(Writer.java:32)打印那行语句还是能执行的。

解决方案 »

  1.   

    根据提示好像是没有 BaseWireFeedParser  估计是你jar 包问题
      

  2.   

    1.依赖包没有都导入,也许你是导入了这个包,但是这个包所依赖的其它包没有导入,导致这个包不能用
    2.JDK的版本,确认你所导入的包所支持的JDK的版本,比较一下你目前所用的JDK版本是否符合要求