eclipse .project文件 .classpath文件的作用

.classpath文件的作用

可以参考.classpath文件的作用

.project文件的作用

确保你自己的eclipse能创建Java项目,并且正确编译运行helloworld,给eclipse配置好了Java环境

基于 .classpath文件,我们看来来不同版本的.project文件对项目的影响

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
	<classpathentry kind="src" path="src"/>
	<classpathentry kind="src" path="lib"/>
	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
		<attributes>
			<attribute name="maven.pomderived" value="true"/>
		</attributes>
	</classpathentry>
	<classpathentry kind="output" path="bin"/>
</classpath>

version 1

仅有一个项目名
.project文件内容

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
	<name>blockchain</name>
	<comment></comment>
	<projects>
	</projects>
	<buildSpec>
	    	
	</buildSpec>
	<natures>
	</natures>
</projectDescription>

项目截图

image_1cdfbprt71qen1g617the8m151c29.png-24.9kB

version 2

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
	<name>blockchain</name>
	<comment></comment>
	<projects>
	</projects>
	<buildSpec>
	</buildSpec>
	<natures>
		<nature>org.eclipse.jdt.core.javanature</nature>
	</natures>
</projectDescription>

项目截图

image_1cdfbvjdvs7p1adgrp1eqb6md2m.png-23.9kB

开心了,有了jre,maven也出来了,浏览每一个.java文件,发现没有报错,运行项目看看

运行项目后报错:
错误: 找不到或无法加载主类 com.langdon.blockchain.Main
为什么?main函数明明已经写好了,为什么会找不到呢?
我们看看.class文件有没有生成,发现项目里压根没有.class文件,原来的项目没有被eclipse编译成功。

version 3

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
	<name>blockchain</name>
	<comment></comment>
	<projects>
	</projects>
	<buildSpec>
		<buildCommand>
            <name>sf.eclipse.javacc.javaccbuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
	</buildSpec>
	<natures>
		<nature>org.eclipse.jdt.core.javanature</nature>
	</natures>
</projectDescription>

项目结构图没有变化

运行效果: 成功了,.class文件成功出现在项目目录下的bin文件夹

如果仍然报错:尝试修改.classpath文件->保存->撤销修改.classpath文件->保存->运行项目->成功
记得每次修改.project文件后都在eclipse里refresh一下项目

一些结论

<natures>
    <nature>org.eclipse.jdt.core.javanature</nature>
</natures>

nature说明项目的性质,是项目的静态属性,可以为项目添加多个nature;
buildCommand是项目的动态属性,说明需要用什么工具来构建项目;
也有说法是:nature-插件,buildCommand-加载方式

posted @ 2018-05-14 22:22  左耳东白水泉  阅读(2344)  评论(0编辑  收藏  举报