首页 新闻 搜索 专区 学院

小白颤颤巍巍的问一个关于IDEA的问题

0
悬赏园豆:5 [已解决问题] 解决于 2020-04-18 13:13

应该是一个送分题

在做一个web项目,测试JDBC,代码直接写到src下面的,运行可以通过,后来我想整理一下测试文件(共三个,一个util.java,一个test.java,一个.properties),就在src下面新建了一个package(JDBCTest),把文件全部扔进去了,后来手贱又运行了一次,却发现运行报错:

Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class JDBCTest.JDBCUtil
at JDBCTest.JDBCTest.main(JDBCTest.java:33)

然后我拖出来就又可以运行,放进来就不行,搞不懂这是为啥,希望各位大佬指点一下,谢谢了

Rhettttt的主页 Rhettttt | 初学一级 | 园豆:199
提问于:2020-04-16 17:59
< >
分享
最佳答案
0

问题已解决:
网上搜索相关错误信息发现:JVM在加载类的时候,会初始化类里的静态变量,或执行静态块,如果这个时候抛出了异常,该类就会加载失败,那么以后任何使用到这个类的地方,都会抛出NoClassDefFoundError异常。
我在工具类里用到了ResourceBundle.getBundle()方法去读取同级目录下的.properties文件,因为考虑到是同一个目录,就没有使用绝对路径,后来改为绝对路径后就可以正常读取了。

Rhettttt | 初学一级 |园豆:199 | 2020-04-18 13:13
其他回答(2)
0

一个好办法,你不要放进去

困难户 | 园豆:209 (菜鸟二级) | 2020-04-16 20:59
0

路径啊,你要是一开始用的绝对路径,重新放到包里去,路径肯定不一样了

收获园豆:5
西红柿里没有番茄 | 园豆:635 (小虾三级) | 2020-04-16 21:05

关键是我没有用到绝对路径啊,都在同一个包下,我用绝对路径干啥嘛,这尼玛玄学了真的

支持(0) 反对(0) Rhettttt | 园豆:199 (初学一级) | 2020-04-17 00:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册