转自:http://blog.csdn.net/h396071018/article/details/7320932
这几天在使用junit时对项目进行测试时要读取spring的配置文件,始终读不到,而且一直使用使用eclipse,就看看它是怎么管理项目的classpath的。
版本:myeclipse 8.0
首先在我们在新建一个workspace的时候就会在新建的workspace目录下新建一个.metadata,我们称这个新建的workspace为W吧。这个文件夹主要是放了eclipse的W这个工作区间的一些基本配置,我估计我们在W下修改一些eclipse的配置最终会写到这个文件夹的摸个文件中去,这样eclipse在下次进入在W时我们之前的设置才会一直有效,这也说明了我们新建一个工作区间那么以前设置的都没有用了,应为读取的不是一个.metadata里的文件。
说多了,先看看.metadata文件夹的目录。
.metadata目录下有2个文件夹和3个文件,2个文件夹分别是.me_tcat和.plugins,这两个文件夹看名字都能大概猜出是什么。.me_tcat文件夹是myeclipse自带的tomcat的发布的目录,进去后你会发现tomcat熟悉的文件夹webapps
对,我们用myeclipse自带的tomcat发布web项目时就是放在这里的;而.plugins看名字也可以猜出是存放的一些个插件
配置文件,也就是我们做的一些设置,这么没有去深究。接下来看看剩下的3个文件,分别是.lock、.log、version.ini,首先那个.lock文件还不知道是干什么,打开是个空白,上网查了下没有查到,有时间上官网上看看,下面说说.log这个文件,这个文件比较重要,看名字就知道是记录日志用的,记录的是myeclipse发生错误时的错误信息,我有一次就是通过这个log文件解决了一个myeclipse的问题,version.ini看名字是记录版本的。好了.metadata说完了。我们这说的是新建workspace的情况下,用了一段时间后你会发现.bak_0.log、.bak_1.log这样的文件,这是对日志的备份吧。
下面我们来新建一个简单的项目,进入新建的项目文件夹后,发现有一个.settings文件夹和.classpath、.project两个文件,.settings里面放的这个项目相关的信息,比如用的java版本是多少。下面就是.classpath了,打开你就大致明白了eclipse的classpath相关的问题了。这个文件有这个几个属性
<classpathentry excluding="*.txt" kind="src" path="src"/> king表示的是种类,path是路径
king="src"表示path所指的目录下的是源码
king="con"表示是eclipse的jar包,
king="lib"表示是我们开发者在项目中使用的第三方jar包
king="var"表示的也是开发者项目使用的jar包,和lib不同的是var的path中有JAVA_HOME这样的在classpath中定义了的,而lib的path是使用的绝对路径,比如c:/myjar/jdbc.jar
king= "output" 表示编译的class输入的path。
excluding表示该path下的符合excluding后面的值的文件不被包含在classpath下,
好了大概说完了。
今天就遇到个eclipse读jar包出错的问题,影响是我在使用myeclipse的时候使用alt+/时老弹个框框,搞得很郁闷,最后查到看看.log文件知道是对一个jar读写失败,找到那个jar包后发现这个jar已经损坏了,重新下了个,ok问题解决了。