报错"java.lang.ClassNotFoundException: net.sf.ezmorph.Morpher"解决方案

一、 测试类

public static void main(String[] args) {
        String str="{\"value\":\"我是测试value值\"}";
        //String -->json
        net.sf.json.JSONObject json=net.sf.json.JSONObject.fromObject(str); 
        System.out.println("String-->json结果="+json);
        
        //String -->Map 或 json -->map
        net.sf.json.JSONObject jsonObj = net.sf.json.JSONObject.fromObject(str);
        Map<String, String> map =(Map<String, String>)jsonObj;
        System.out.println("String-->map结果="+map.toString());
        
    }

代码执行之后,控制台报如下错误信息:

Exception in thread "main" java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher
    at com.study.dang.test.base.TestString5.main(TestString5.java:14)
Caused by: java.lang.ClassNotFoundException: net.sf.ezmorph.Morpher
    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)
    ... 1 more

二、解决办法
原因分析:
使用JSON时,除了要导入JSON网站上面下载的json-lib-2.2-jdk15.jar包之外,
还必须有其它几个依赖包:
commons-beanutils.jar,commons-httpclient.jar,commons-lang.jar,ezmorph.jar,morph-1.0.1.jar 这几个包也是需要导入的.
如果缺少里面的:ezmorph.jar包,则即出现上述异常。
 
解决办法:
在pom.xml中添加依赖:

<dependency>
    <groupId>net.sf.ezmorph</groupId>
    <artifactId>ezmorph</artifactId>
    <version>1.0.6</version>
</dependency>


当jar生效(成功导入)后,再次执行main方法,一切正常了。


原文链接:https://blog.csdn.net/zengdeqing2012/article/details/52053832

猜你喜欢

转载自blog.csdn.net/qq_36411874/article/details/100134638