不是没有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)打印那行语句还是能执行的。
代码如下
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)打印那行语句还是能执行的。
2.JDK的版本,确认你所导入的包所支持的JDK的版本,比较一下你目前所用的JDK版本是否符合要求