在Java中使用ROME API读取RSS Feed遇编译错误求助
解决ROME API编译时找不到包的问题
看起来你踩了ROME版本和包名不匹配的坑啦,我来帮你捋清楚问题出在哪:
问题根源
你当前使用的是rome-1.0.jar(旧版ROME),但代码里导入的是com.rometools.rome.io.SyndFeedInput——这个包名是**新版ROME(由rometools维护的2.x及以上版本)**才用的,旧版ROME(1.x系列)的包前缀是com.sun.syndication,两者完全不对应,所以编译时会报错找不到包。
两种解决方案
方案一:继续使用现有rome-1.0.jar
修改你的Java文件中的导入语句,把包名换成旧版的:
// 替换原来的import语句 import com.sun.syndication.io.SyndFeedInput;
然后重新执行编译命令:
javac -cp /path/to/jar/rome-1.0.jar RSSFeed.java
方案二:升级到新版ROME(推荐)
旧版ROME已经停止维护,新版功能更完善且有持续更新,推荐你升级:
- 下载新版ROME的jar包(比如最新稳定版2.1.0)
- 保持你代码里的导入语句不变:
import com.rometools.rome.io.SyndFeedInput;
- 编译时指定新版jar的路径:
javac -cp /path/to/jar/rome-2.1.0.jar RSSFeed.java
如果后续项目规模变大,建议用Maven或Gradle管理依赖,避免手动导包的麻烦,比如Maven依赖配置:
<dependency> <groupId>com.rometools</groupId> <artifactId>rome</artifactId> <version>2.1.0</version> </dependency>
内容的提问来源于stack exchange,提问作者BOB
相关产品推荐
相关产品推荐

