发表于: 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包布置到服务器上,运行测试
遇到的问题:
今天分配的时间都用来解决昨天的问题了,暂时没有问题
收获:
①解决了昨天卡住的问题,虽然解决后还是不知甚解。
②难题还是难题,我能够坦然处之,相信自己能够解决。
评论