Viv*_*ntu 5 java intellij-idea noclassdeffounderror
嗨,我现在一直处理这个问题,但我无法修复它.
所以我有一个简单的Java应用程序,它使用Google Calendar API从中获取事件.
当我在IDE(IntelliJ)上运行它时没有错误,但是当我从命令行构建并运行JAR时,我收到此错误:
Exception in thread "main" java.lang.NoClassDefFoundError:
com/google/api/client/extensions/java6/auth/oauth2/VerificationCodeReceiver
at info.cantu.smartmirror.Main.main(Main.java:44)
Caused by: java.lang.ClassNotFoundException:
com.google.api.client.extensions.java6.auth.oauth2.VerificationCodeReceiver
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more
Run Code Online (Sandbox Code Playgroud)
我使用maven导入了所需的库.我想我可能会错误地构建jar.
这是我的MANIFEST.MF:
Manifest-Version: 1.0
Main-Class: info.cantu.smartmirror.Main
Run Code Online (Sandbox Code Playgroud)
这是我的Artifacts面板的样子:
有任何想法吗?
好吧,我明白了。我做了两件事:
第 1 点:我通过转到“项目结构”->“库”->(选择它)-> 单击减号按钮,从项目中删除了 google-oauth-client-jetty:1.20.0。
然后我添加了新版本的库(1.22)这个链接有最新的版本号。我通过 maven 添加了它(在与之前相同的窗口中)单击加号按钮 -> From Maven 并搜索它
然而它似乎不起作用。
第二(我认为这成功了):
在项目结构 -> 工件 -> 我试图构建的 JAR -> 我选择了右侧有问题的库。但是,不是双击它,而是简单地将库放在输出根目录中。我右键单击并选择“Extract Into Output Root”,它提取了库中包含的所有单独的 jar 并将它们添加到输出根目录中。