You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下java.exe将驼峰类名转小写查找致类加载失败问题

问题原因

这是Windows 10默认开启的快速启动功能引发的NTFS文件系统大小写处理缓存异常,属于系统更新后偶发的底层bug,和本地Java环境配置、代码写法没有任何关系。

现象匹配逻辑
  • 执行java -classpath . HelloWorld时报错找不到helloworld类,本质是Java启动器查找class文件时,受异常的文件系统大小写映射规则影响,把传入的驼峰格式类名HelloWorld错误转换成了全小写字符串去匹配文件名,自然找不到实际存在的HelloWorld.class。
  • 全小写命名的helloworld2能正常运行,是因为类名本身就是全小写,刚好和错误转换后的查找名一致,所以不会触发报错。
  • 同一份class文件在CentOS 7环境运行正常,是因为Linux系统的文件系统默认区分大小写,不存在Windows快速启动带来的缓存错乱问题。
  • 普通重启无法解决问题,是因为Windows 10的快速启动本质是带内核休眠的混合启动,普通重启不会清空内核层的文件系统缓存;只有完全关机后再冷开机,才会彻底清除休眠残留的缓存数据,重新加载NTFS卷的正常规则,问题就直接消失。
后续规避方法

如果之后再碰到同类问题不想反复关机,可以直接做两个调整:

  • 用管理员权限打开命令提示符,执行fsutil behavior set disablelastaccess 3重置文件系统访问缓存,执行完不需要重启就能恢复正常
  • 直接关闭快速启动功能:打开控制面板→电源选项→选择电源按钮的功能,取消勾选「启用快速启动(推荐)」,就能避免Windows更新后再触发同类的文件系统缓存异常。

内容的提问来源于stack exchange,提问作者Wayne Jeong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 14:21:27