如何在IntelliJ中将只读文件设置为可写入状态
IntelliJ单文件只读无法编辑问题修复
问题表现
- 使用IntelliJ搭建JavaFX应用时,仅控制器类
HelloController.java为只读状态无法编辑,同项目下的HelloApplication.java主类、FXML文件等其余文件都能正常修改 - 按
File | File Properties路径打开文件属性页想调整为可写状态时,菜单仅显示Make File read only选项,没有切换可写状态的对应入口,和当前文件只读的状态完全矛盾。
解决步骤
按优先级从高到低排查,绝大多数情况前两步就能解决:
- 先查操作系统层面的文件权限
关掉IntelliJ,在本地文件夹里找到HelloController.java:- Windows用户:右键点文件选「属性」,在常规栏最底部把「只读」的勾选去掉,点应用保存
- macOS/Linux用户:打开终端跑命令
chmod u+w 替换成你HelloController.java的完整本地路径,给当前用户加写入权限
改完重新开IntelliJ,基本一半以上的情况到这就好了。
- 检查是不是被IDE标记成了自动生成文件
要是系统权限本来就是正常的,打开File | Project Structure | Modules,切到Sources标签,找到HelloController.java所在的文件夹,看这个文件或者它的上级目录是不是被标成了Generated Sources。只要被标成自动生成的源码,IntelliJ默认会给文件加只读锁,防止手改自动生成的内容,把这个标记去掉点应用就行。 - 排查版本控制锁
如果项目挂了Git、SVN这类版本控制,查下是不是不小心把这个文件设成了忽略变更/锁定状态。Git场景直接在项目根目录开终端,跑git update-index --no-assume-unchanged 替换成HelloController.java相对项目根目录的路径就能解锁。 - 清缓存解决IDE索引异常
前面都试了还不行,就打开File | Invalidate Caches...,勾上清除缓存和索引,确认后等IDE自动重启,重索引完基本就恢复正常了。
内容的提问来源于stack exchange,提问作者user18003748
相关产品推荐
相关产品推荐

