MyEclipse下java文件的图标是空心的J (文件只读)

问题如下:

MyEclipse下java文件的图标是空心的J,如下图所示:

MyEclipse下java文件的图标是空心的J (文件只读)

正常情况下应该是实心J,如下图所示:

MyEclipse下java文件的图标是空心的J (文件只读)

什么也做不了 查了好久   参考了 几篇博客  统计了下解决方法   应该都可以解决

我是从git   和svn 上下载项目去meclipse 上时遇到的这个问题 (一般为maven项目导出容易有这个问题)

解决方法如下;

1       删除Myeclipse上的项目 但是保存本地的文件(就是项目右键选择 Delete)然后如图操作

MyEclipse下java文件的图标是空心的J (文件只读)不打勾  直接OK

然后Import导入本地项目(选择maven导入) 如下图

MyEclipse下java文件的图标是空心的J (文件只读)

导入成功之后jar包下载完成之后就可以了,如果不可以 请看下面几种方法 (转载的)

2 :转载自:https://blog.****.net/xiayujj123/article/details/45969917?locationNum=6&fps=1

修改方式:

首先检查Java Build Path中的Source;

选中整个工程--右键--选择properties--Java Build Path--Source

MyEclipse下java文件的图标是空心的J (文件只读)

如果该值设置如下则为正常,

MyEclipse下java文件的图标是空心的J (文件只读)

否则,修改为如下设置即可;修改方式为:点击右侧 Add Folder --选择项目的src即可,如下图所示:

MyEclipse下java文件的图标是空心的J (文件只读)

 

3:转载自   https://blog.****.net/huoyunshen88/article/details/8780989

此博客提供的方法有如下

办法1: 
右击该文件 --> BuildPath --> Include 
正常实心J时,该选项为 Exclude 

方法2: 
BuildPath-->configure buildpath--->source中添加需要被包含的代码

没太看懂,最后用类似的方法解决的:
选中工程--右键Properties--Java Build Path--Source
找到出现空心J的Java文件所在的包,展开树,正常情况为:
Included:(All)
Excluded:(None)
Native library location:(None)
我的工程中Exclued项有空心J的Java文件的目录,选中Excluded,点左侧Remove,然后确定。

 

方法3:

解决办法:
编辑项目下的.project文件,
(1)在<buildCommand>中加<name>org.eclipse.jdt.core.javabuilder</name>
(2)<natures>中加<nature>org.eclipse.jdt.core.javanature</nature>

e.g.正常项目中.project文件:
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>CommonDAO</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

 

 

以上是网上提供的三种解决办法。前两种方法应该是一个意思,但是在我这边,右键,property,之后并没有build path这个项,如果有的话,这个方法应该是可行的。【不知道为什么我的property里面没有这个选项,实心J的工程的property里是有个选项的】

 

我的问题最终解决了,但是不明白为什么,把解决办法共享。很简单,只需要在工程上(源文件为空心J的工程,或者说工程名上没有J标签的工程,也就是不能编译的工程),点击右键,选择maven,选择enable dependency management,这样就ok了,囧吧,我至今不明白为什么