引起:java.lang.ClassNotFoundException:org.mortbay.jetty.Handler
Posted
技术标签:
【中文标题】引起:java.lang.ClassNotFoundException:org.mortbay.jetty.Handler【英文标题】:Caused by: java.lang.ClassNotFoundException: org.mortbay.jetty.Handler 【发布时间】:2015-08-03 23:46:19 【问题描述】:我正在开发 YouTube 广播示例 java 程序。我创建了一个从
导入代码的示例程序https://github.com/youtube/api-samples/tree/master/java
而且,我已经导入了必要的依赖项/jars。但是,当我尝试运行程序时,它会在这一行抛出异常:
LocalServerReceiver localReceiver = new LocalServerReceiver.Builder().setPort(8080).build();
以下异常:
Throwable: org/mortbay/jetty/Handler
java.lang.NoClassDefFoundError: org/mortbay/jetty/Handler
at com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver$Builder.build(LocalServerReceiver.java:169)
at com.google.api.services.samples.youtube.cmdline.live.Auth.authorize(Auth.java:80)
at com.google.api.services.samples.youtube.cmdline.live.CreateBroadcast.main(CreateBroadcast.java:55)
Caused by: java.lang.ClassNotFoundException: org.mortbay.jetty.Handler
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 3 more
当我导入org.mortbay.jetty.jar
我得到了这个例外:
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/api/client/extensions/java6/auth/oauth2/VerificationCodeReceiver
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver$Builder.build(LocalServerReceiver.java:180)
at HelloWorld.main(HelloWorld.java:7)
Caused by: java.lang.ClassNotFoundException: com.google.api.client.extensions.java6.auth.oauth2.VerificationCodeReceiver
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 14 more
【问题讨论】:
你在用maven吗? 不,我正在使用构建路径导入 jars 添加了一个答案,指定了您应该包含的 jar。when I import org.mortbay.jetty.jar
到底是什么意思?您在代码中添加了import statement
?你把jar文件放在classpath
?如果您在项目中使用 maven,请发布 pom.xml
。
@SubOptimal 我没有使用 maven,而是使用构建路径。请用 shruti1810 检查我的前 3 个 cmets 你会知道我做了什么
【参考方案1】:
如果您使用的是 maven,请将此 jar 包含在您的 pom.xml
中
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
<version>6.1.5</version>
</dependency>
否则,你可以下载这个jar org.mortbay.jetty.jar
并包含它。
【讨论】:
你指向的github链接有一个pom.xml,它没有包含这个jar。 是的,它没有提到那里,但显示 CTE 摆脱了那个错误 根据您的第二个错误,您应该也添加此 jargoogle-oauth-client-java6-1.13.1-beta-sources.jar
它给出的是相同的错误还是一些不同的错误?
你能解压包并检查它是否有这个类吗?如果没有,您正在使用的版本应该更新或降级为包含该类的 jar 版本。以上是关于引起:java.lang.ClassNotFoundException:org.mortbay.jetty.Handler的主要内容,如果未能解决你的问题,请参考以下文章
如何区分两个“onpause”事件 - 由单击“暂停”按钮引起,以及由到达媒体片段末尾引起?