记一次Java包名命名不规范引发的问题

young 52 2025-03-19

现象:

某项目在部署时提示ClassNotFoundException导致部署失败

排查过程

  1. 检查相关jar包,发现class文件存在
  2. 对比堆栈信息中类的全路径,发现其中某一个包路径为大驼峰方式(首字母大写),按照路径一层一层进行排查,发现编译之后,该目录变为了小写驼峰(首字母小写)

由此可见,包名首字母大写,在进行编译后,首字母会变为小写,从而导致class路径不一致,无法正常加载。

解决方案

要求其项目组按照Java程序开发规范要求,将所有的包名修改为小写,并重新编译发布,修改之后程序正常启动。

后续问题

该项目组成员反馈,拉取代码后,程序包路径错误。
经检查发现,该项目成员拉取后的代码,包目录名称依旧是大写。
经排查,git可能会忽略目录的大小写,需关闭git的相关配置后,再重新推送,才可正确的修改包目录名称

git config core.ignorecase false