Java Jar-Java.lang.NoClassDefFoundError:com.google.api.client.http.HttpTransport from

Java Jar-Java.lang.NoClassDefFoundError:com.google.api.client.http.HttpTransport from,java,google-api-client,google-api-java-client,google-webmaster-tools,google-oauth-java-client,Java,Google Api Client,Google Api Java Client,Google Webmaster Tools,Google Oauth Java Client,我使用网站管理员工具JavaAPIv3来查询数据,我的代码在eclipse中工作得很好,但是当我将其导出到Jar时,我得到了下面的错误 Exception in thread "main" java.lang.NoClassDefFoundError: com.google.api.client.http.HttpTransport at java.lang.J9VMInternals.prepareClassImpl(Native Method) at java.lang.J9

我使用网站管理员工具JavaAPIv3来查询数据,我的代码在eclipse中工作得很好,但是当我将其导出到Jar时,我得到了下面的错误

Exception in thread "main" java.lang.NoClassDefFoundError: com.google.api.client.http.HttpTransport
    at java.lang.J9VMInternals.prepareClassImpl(Native Method)
    at java.lang.J9VMInternals.prepare(J9VMInternals.java:430)
    at java.lang.Class.getMethod(Class.java:1061)
    at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:506)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:498)
Caused by: java.lang.ClassNotFoundException: com.google.api.client.http.HttpTransport
        at java.net.URLClassLoader.findClass(URLClassLoader.java:665)
        at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:942)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:851)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:82
我的家属如下

我正在用Java6编译和导出jar,并使用Java7执行它


我假设这是一个依赖性问题,但我不知道如何解决它??特别是它在eclipse中工作,但是当我从eclipse导出jar时,保留默认配置并选择主类,我得到了NoClassDefFoundError,如果您有任何想法,请提前向您表示感谢。

如果com.google.api.client.http.HttpTransport类在编译期间可用,但在运行时不可用,则会出现此错误

Eclipse会自动将构建类路径上的jar文件添加到运行时配置的类路径中。因此,当从Eclipse运行时,不会出现异常

我假设您是这样从命令行运行的:
java-cp myjarfile.jar com.my.Main

如果是这种情况,则类路径缺少Eclipse中配置的依赖项。要解决此问题,请按如下所示附加它们:
java-cp myjarfile.jar;commons-logging-1.1.1.jar;等com.my.Main

注意分号
适用于Windows。在Linux上使用冒号

更新 使用可运行jar文件时,请确保在清单文件中正确设置了类路径


我通过从eclipse而不是Jar导出可运行Jar解决了这个问题。

但是我将所有Jar添加到了类路径中。请演示如何。复制/粘贴用于启动应用程序的命令行,例如java-cp。。。所以我们可以提供更好的反馈,问题解决了,我刚刚从eclipse导出了一个可运行的jar,然后使用java-jar majar.jarGreat执行它!很高兴你解决了。我已经用-jar策略更新了我的答案。