发表于: 2018-05-20 22:26:34

2 1888


今天完成的事情:

1.查到了昨天的问题的原因

https://blog.csdn.net/jamesjxin/article/details/46606307

NoClassDefFoundError错误的发生,是因为Java虚拟机在编译时能找到合适的类,而在运行时不能找到合适的类导致的错误。例如在运行时我们想调用某个类的方法或者访问这个类的静态成员的时候,发现这个类不可用,此时Java虚拟机就会抛出NoClassDefFoundError错误。

很明显NoClassDefFoundError的错误是因为在运行时类加载器在classpath下找不到需要加载的类,所以我们需要把对应的类加载到classpath中,或者检查为什么类在classpath中是不可用的,这个发生可能的原因如下:

①对应的Class在java的classpath中不可用

②你可能用jar命令运行你的程序,但类并没有在jar文件的manifest文件中的classpath属性中定义

③可能程序的启动脚本覆盖了原来的classpath环境变量

④因为NoClassDefFoundError是java.lang.LinkageError的一个子类,所以可能由于程序依赖的原生的类库不可用而导致

⑤检查日志文件中是否有java.lang.ExceptionInInitializerError这样的错误,NoClassDefFoundError有可能是由于静态初始化失败导致的

⑥如果你工作在J2EE的环境,有多个不同的类加载器,也可能导致NoClassDefFoundError

检查后发现

ap=new ClassPathXmlApplicationContext("applicationContext.xml");

应该改成ApplicationContext.xml

再尝试一下,还是同样报错。


NoClassDefFoundError: org/springframework/context/ApplicationContext

可能是缺少spring-context的jar包,补上后clean+install,再运行尝试,还是同样报错。


可能是UserController,引用的

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

错了,重新输入一遍,clean+install再运行尝试,还是同样报错


把UserDao.xml放到resources里面,clean+install再运行尝试,idea成功输出!!!

但是,用cmd跑还是报错

D:\idea\practice\5,12\springmybatismission1\target>java -cp springmybatismission

1-1.0-SNAPSHOT.jar com.system.test.UserController

Error: A JNI error has occurred, please check your installation and try again

Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/c

ontext/ApplicationContext

        at java.lang.Class.getDeclaredMethods0(Native Method)

        at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)

        at java.lang.Class.privateGetMethodRecursive(Class.java:3048)

        at java.lang.Class.getMethod0(Class.java:3018)

        at java.lang.Class.getMethod(Class.java:1784)

        at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544

)

        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)

Caused by: java.lang.ClassNotFoundException: org.springframework.context.Applica

tionContext

        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)

        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)

        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)

        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

        ... 7 more

2.昨天cmd运行报错说缺少主清单属性,百度后给pom.xml加上

链接:https://blog.csdn.net/cloume/article/details/51969740

<build>

        <plugins>

            <plugin>

                <groupId>org.apache.maven.plugins</groupId>

                <artifactId>maven-shade-plugin</artifactId>

                <version>1.2.1</version>

                <executions>

                    <execution>

                        <phase>package</phase>

                        <goals>

                            <goal>shade</goal>

                        </goals>

                        <configuration>

                            <transformers>

                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">

                                    <mainClass>com.system.test.UserController</mainClass>

                                </transformer>

                            </transformers>

                        </configuration>

                    </execution>

                </executions>

            </plugin>

        </plugins>

    </build>

clean+install再运行尝试,idea能成功输出

再cmd尝试运行

java -jar springmybatismission1-1.0-SNAPSHOT.jar

成功输出!!!

D:\idea\practice\5,12\springmybatismission1\target>java -jar springmybatismissio

n1-1.0-SNAPSHOT.jar

五月 20, 2018 9:57:36 下午 org.springframework.context.support.AbstractApplicati

onContext prepareRefresh

信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationCont

ext@70177ecd: startup date [Sun May 20 21:57:36 CST 2018]; root of context hiera

rchy

五月 20, 2018 9:57:36 下午 org.springframework.beans.factory.xml.XmlBeanDefiniti

onReader loadBeanDefinitions

信息: Loading XML bean definitions from class path resource [ApplicationContext.

xml]

五月 20, 2018 9:57:38 下午 org.springframework.beans.factory.support.DefaultList

ableBeanFactory preInstantiateSingletons

信息: Pre-instantiating singletons in org.springframework.beans.factory.support.

DefaultListableBeanFactory@4411d970: defining beans [jdbcDataSource,sqlSessionFa

ctory,userDao]; root of factory hierarchy

五月 20, 2018 9:57:38 下午 org.springframework.jdbc.datasource.DriverManagerData

Source setDriverClassName

信息: Loaded JDBC driver: com.mysql.jdbc.Driver

ID:1

姓名:朱丽

QQ:3319729010

修真类型:PM

预计入学时间:20180611

毕业院校:湖北工程学院

线上学号:1083

日报链接:http://www.jnshu.com/daily/54684?dailyType=others&total=7&page=1&uid=2

1830&sort=0&orderBy=3

立愿:老大最帅

辅导师兄:刘宁

从何从了解到的修真院:知乎

创建时间:20180329102633

更新时间:20180410134740

再尝试另外几个操作增删改都能运行,但是有点麻烦啊,每次都要把查操作注释掉,再把增操作去掉注释,再clean+install,再在cmd里面

java -jar springmybatismission1-1.0-SNAPSHOT.jar才能看到结果。

明天计划的事情:

①百度一下如何能直接在命令行运行增删改查不同的方法

②把jar包布置到服务器上,运行测试

遇到的问题:

今天分配的时间都用来解决昨天的问题了,暂时没有问题

收获:

①解决了昨天卡住的问题,虽然解决后还是不知甚解。

②难题还是难题,我能够坦然处之,相信自己能够解决。


返回列表 返回列表
评论

    分享到