java NoClassDefFoundError:com/google/api/client/extensions/java6/auth/oauth2/VerificationCodeReceiver当我运行jar而不是IDE时

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面板的样子:

这是我的Artifacts面板的样子:

有任何想法吗?

Viv*_*ntu 1

好吧,我明白了。我做了两件事:

第 1 点:我通过转到“项目结构”->“库”->(选择它)-> 单击减号按钮,从项目中删除了 google-oauth-client-jetty:1.20.0。

然后我添加了新版本的库(1.22)这个链接有最新的版本号。我通过 maven 添加了它(在与之前相同的窗口中)单击加号按钮 -> From Maven 并搜索它

然而它似乎不起作用。

第二(我认为这成功了):

在项目结构 -> 工件 -> 我试图构建的 JAR -> 我选择了右侧有问题的库。但是,不是双击它,而是简单地将库放在输出根目录中。我右键单击并选择“Extract Into Output Root”,它提取了库中包含的所有单独的 jar 并将它们添加到输出根目录中。

如下所示