今天将Eclipse中的文件直接复制粘贴到了IDEA的工程下,发现原有的directory变为了package,且只能在src下新建package不可以新建directory。我们先介绍directory的mark属性再介绍怎么解决这一问题。
我们先随便选取一个package/directory,右键,可以看到如下结构(根据directory的mark不同会有差异)

图片中一共有六种属性,我们介绍前五种(参考简书:IntelliJ IDEA 之 mark directory as的作用)
Sources Root
Sources Root也就是新建工程中src的默认属性,这种文件夹中的内容会作为构建过程中一部分需要被编译的源码。
Test Sources Root
该mark类似于Sources Root,但是在该文件夹下存放的是用于测试用的代码。一般使用这种方法将生产文件和测试文件分开
Resources Root
一般用于存放程序运行需要的资源文件,例如图片,txt文件,属性文件等
TestResources Root
与Resources Root类似,但是存放的是用于测试的相关资源文件
Excluded
顾名思义,IDEA会排除该文件夹中的内容,不会对该文件夹中的代码进行代码检查和代码提示
directory为何会转为package?以及如何修改
问题原因
src的初始属性为Sources Root,所有此属性文件夹下的子文件夹会自动转化为package。如果不改变src的mark,将其他文件夹直接复制到src下,会导致复制过来的文件的结构产生变化,出现路径错误。
演示如下:我们直接将一个文件夹P2(P2中有名为turtles的package,package中有多个.java文件)复制粘贴到src之下,会发现原本的directory转为了package

而turtle下的.java文件因为项目结构发生变化产生报错
Package name ‘turtle’ does not correspond to the file path ‘P2.turtle’
解决办法
右键点击src,出现按照图中所选更改src的属性,删除src的属性即可,src的原有文件中的结构也有可能发生相应变化,之后根据需要修改src下其他文件夹的属性,在这里我们将P2修改为Sources Root,其下文件夹自动转为package。

本文探讨了在IntelliJ IDEA中,目录(directory)变为package的情况,原因是目录被标记为Sources Root。当从Eclipse复制文件到IDEA时,可能导致目录结构错误,如“Package name 'turtle' does not correspond to the file path 'P2.turtle'”。解决方案是通过右键点击src,取消其Sources Root属性,然后根据需要重新设置目录属性。
1859

被折叠的 条评论
为什么被折叠?



