在eclipse中空心J标志的工程
今天用SVN检出了几个工程,发现不能编译,与已有的可以编译的.java文件对比,发现,这些不能编译的工程中的java源文件,上标是空心J,而正常可编译的java文件上标为实心的J,如图
,而可编译的工程上标有J标识,不可编译的没有,如图
在网上窜梭,得到三个解决方案,原文copy之:
?
空心J的java文件,不被包含在项目中进行编译,而是当做资源存在项目中。?
办法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里是有个选项的,上图,说明问题:】
?
?所以,前两种方法我不能验证。第三种方法,我没看懂,工程中没有?.project文件,因此也不能验证。
?
我的问题最终解决了,但是不明白为什么,把解决办法共享。很简单,只需要在工程上(源文件为空心J的工程,或者说工程名上没有J标签的工程,也就是不能编译的工程),点击右键,选择maven,选择enable?dependency?management,这样就ok了,囧吧,我至今不明白为什么。