IntelliJ IDEA生成out文件夹导致运行结果不更新问题求助
Java代码修改后运行结果始终是旧内容的解决办法(新手友好)
问题说明
修改Java代码后,编辑器显示新代码,但运行结果一直是第一次未修改时的输出;删除out文件夹后运行能得到正确结果,但之后又重复输出旧内容,且out中的.class文件为只读无法编辑。
核心原因
out文件夹是Java编译后生成的**字节码文件(.class)**的存放目录,Java程序实际运行的是这些.class文件,而非你编写的.java源文件。如果IDE没有自动重新编译生成新的.class文件,或者无法覆盖旧的.class,就会一直执行旧代码。
分步解决办法
1. 开启IDE自动编译功能
这是最常见的原因,新手容易忽略这个开关:
- IntelliJ IDEA:
- 点击顶部菜单栏
File->Settings(Windows/Linux)或IntelliJ IDEA->Settings(Mac) - 在搜索框输入
Compiler,进入Build, Execution, Deployment->Compiler选项 - 勾选Build project automatically,点击
OK后重启IDE
- 点击顶部菜单栏
- Eclipse:
点击顶部菜单栏Project,勾选Build Automatically选项
2. 手动强制重新编译
如果自动编译开启后仍无效,手动触发全量编译:
- IntelliJ IDEA:点击顶部菜单栏
Build->Rebuild Project,这会清空所有旧编译文件,重新生成最新的.class - Eclipse:点击顶部菜单栏
Project->Clean,选择你的项目后点击Clean,完成后IDE会自动重新编译
3. 检查运行配置是否正确
偶尔会出现运行配置指向了旧的类或路径:
- IntelliJ IDEA:
- 点击运行按钮旁的下拉框,选择
Edit Configurations - 确认
Main class是你当前修改的类,Working directory为项目根目录
- 点击运行按钮旁的下拉框,选择
- Eclipse:
- 右键项目 ->
Run As->Run Configurations - 在
Java Application分类下,确认Main class正确,Classpath路径无异常
- 右键项目 ->
4. 修复out文件夹的权限问题
如果.class文件显示只读,可能是权限导致IDE无法覆盖旧文件:
- Windows:右键
out文件夹 ->属性,取消勾选只读选项,点击应用 - Mac/Linux:打开终端,进入项目根目录,执行命令:
给文件夹及内部文件添加读写权限sudo chmod -R 755 out
内容的提问来源于stack exchange,提问作者Anuj Sharma
相关产品推荐
相关产品推荐

