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

更新Java文件时是否需要调整src/main/resources下的.class文件?

问题解决方案
  • 第一时间删除src/main/resources目录下的abc.class文件,之后正常执行Maven编译命令即可,不需要保留这个文件,理由如下:
    1. Maven标准目录规范中,src/main/java用于存放Java源代码,执行mvn compile命令时,Maven会自动将该目录下的.java文件编译为.class文件,输出到target/classes目录下,最终打包时也会将这些编译好的类文件打到发布包的正确路径。
    2. src/main/resources是专门用于存放配置文件、静态资源等非Java源代码的目录,不应该存放编译后的类文件,这里的abc.class属于错误冗余文件:
      • 保留该文件的话,Maven打包时会自动将resources下的所有文件拷贝到target/classes目录,要么覆盖你新编译的同名类,要么导致运行时类加载器优先读取到旧版本的类,出现代码修改不生效的诡异问题。
      • 你修改abc.java后重新编译,只会更新target/classes下对应路径的类文件,不会改动resources下的旧文件,留着没有任何作用只会带来隐患。
  • 后续优化建议:
    • 排查项目pom.xml中是否有错误的自定义编译/拷贝规则,确认之前为什么会将类文件生成到resources目录,避免后续再出现同类问题。
    • 每次修改代码后建议执行mvn clean compile命令,clean参数会清空之前的target目录,避免旧的编译残留干扰运行结果。

内容的提问来源于stack exchange,提问作者Karthik G Sarode

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 02:21:03