Tinycen
Tinycen
采纳率100%
2019-05-23 00:35 阅读 2.3k
已采纳

新人求解:JAVA导入外部包后提示java.lang.NoClassDefFoundError

5

代码如下:

package test.copy;

import com.jd.open.api.sdk.DefaultJdClient;
import com.jd.open.api.sdk.JdClient;
import com.jd.open.api.sdk.JdException;
import com.jd.open.api.sdk.request.mall.WarePriceGetRequest;
import com.jd.open.api.sdk.response.mall.WarePriceGetResponse;

public class Tes {

    public static void main(String[] args) {

        String SERVER_URL = "https://api.jd.com/routerjson?";
        String appKey = "bd……8";
        String appSecret = "a7……da";
        String accessToken = "";

        JdClient client=new DefaultJdClient(SERVER_URL,accessToken,appKey,appSecret); 
        WarePriceGetRequest request=new WarePriceGetRequest();
        request.setSkuId("4……2");
        try {
            WarePriceGetResponse response=client.execute(request);
            System.out.println(response);
        } catch (JdException e) {
            e.printStackTrace();
        }

    }

}

运行报错如下:

Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/jackson/map/ObjectMapper
at com.jd.open.api.sdk.internal.util.JsonUtil.(JsonUtil.java:18)
at com.jd.open.api.sdk.request.mall.WarePriceGetRequest.getAppJsonParams(WarePriceGetRequest.java:35)
at com.jd.open.api.sdk.DefaultJdClient.buildUrl(DefaultJdClient.java:131)
at com.jd.open.api.sdk.DefaultJdClient.execute(DefaultJdClient.java:96)
at test.copy.Tes.main(Tes.java:22)
Caused by: java.lang.ClassNotFoundException: org.codehaus.jackson.map.ObjectMapper
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 5 more

有小哥哥知道是什么原因吗?233333……

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

4条回答 默认 最新

  • 已采纳
    weixin_39808420 世纪怪咖 2019-05-23 09:03

    org.codehaus.jackson.map.ObjectMapper你的程序运行需要依赖这个包,但是它没找到,你可以查下这个包,然后导进去

    点赞 1 评论 复制链接分享
  • wangbo924 wangbo924 2019-05-23 11:33

    NoClassDefFoundError错误的发生,是因为Java虚拟机在编译时能找到合适的类,而在运行时不能找到合适的类导致的错误。例如在运行时我们想调用某个类的方法或者访问这个类的静态成员的时候,发现这个类不可用,此时Java虚拟机就会抛出NoClassDefFoundError错误。与ClassNotFoundException的不同在于,这个错误发生只在运行时需要加载对应的类不成功,而不是编译时发生。很多Java开发者很容易在这里把这两个错误搞混。

    点赞 2 评论 复制链接分享
  • wddyhdcsdn 拂晓的猫头鹰 2019-05-25 15:44

    缺包,只能找包导入或者添加maven依赖

    点赞 1 评论 复制链接分享
  • weixin_39827826 治愈君 2019-05-27 10:44

    缺少包,看看import后面哪个点不进去,就少哪个包,导入就可以了

    点赞 1 评论 复制链接分享

相关推荐