我正在尝试使用YouTube Java GData库/ API获取特定用户的视频列表。
但是,当我尝试使用YouTubeService service = new YouTubeService("Cyphon-MyCampusPulse-1", YOUTUBE_API_KEY);
创建服务时,我得到以下运行时异常:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/mail/MessagingException
at scrapers.YouTubePulseScraper.<init>(YouTubePulseScraper.java:37)
at scrapers.YouTubePulseScraper.main(YouTubePulseScraper.java:153)
Caused by: java.lang.ClassNotFoundException: javax.mail.MessagingException
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
... 2 more
我不确定异常与我正在做的事情有什么关系。任何提示都表示赞赏。
答案 0 :(得分:7)
您需要将JavaMail jar添加到包含javax.mail.MessagingException的类路径中。你可以在这里得到它:http://www.oracle.com/technetwork/java/index-138643.html
编辑: 摘自文档:
GData Java客户端库具有 遵循外部依赖关系。该 以下部分将介绍如何 在你的安装上安装这些依赖项 最喜欢的操作系统(或OS 你在工作中坚持下去。)
- JDK(Java Development Kit)版本1.5 +
- Apache Ant版本1.7 +
Sun的JavaMail API 1.4 +中的- mail.jar
Sun的JavaBeansActivationFramewrok中的- activation.jar。这是 仅适用于媒体特定API 包括文档列表数据API, Picasa网络相册API和YouTube数据 API。
Sun的Servlet API版本2.3+中的- servlet.jar。仅在需要时才需要这样做 执行代码示例 'sample.authsub'或 'sample.gbase.recipe'包。
一些.jar依赖项 仅限特定样品, 但为了避免构建错误,最好 只为了得到一切。选择你的 操作系统的选择 继续: Windows, Mac OS X, 要么 Linux
我添加了这个,因为如果你错过了一个依赖关系,你可能会错过其他依赖关系,所以你应该仔细检查你是否拥有所有东西。
答案 1 :(得分:0)
您需要Java Mail,可从Maven Repository获取:
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.5</version>
</dependency>