1、.classpath文件時eclipse新建web工程的時候生成的一個文件,改變java Build path的時候或者改變加載的jar包順序的時候,這個文件也會改變。
2、.classpath文件不能隨意刪除。個人在將已有的工程import進入eclipse工作區的時候將.classpath文件刪除了,然后再重新導入jar包,整個工程就會重新編譯,也就會產生.classpath文件,但是這個重新生成的.classpath文件的內容可能就會出問題,也就有可能導致在tomcat部署的時候出現不可預料的問題。
例如:
原始的.classpath文件部分主要內容如下:
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="output" path="WebRoot/WEB-INF/classes"/>
個人刪除后,eclipse重新build的.classpath文件部分主要內容如下:
- <classpathentry kind="src" path=""/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.6.0_11"/>
- <classpathentry kind="output" path="/bin"/>
- 說明下:<classpathentry kind="src" path="src"/> 表示工程源文件的地址;
- <classpathentry kind="output" path="/bin"/>表示產生的class文件地址;
- 比較前后兩個.classpath文件可以發現,重新build的.classpath文件里面的源文件地址為 <classpathentry kind="src" path=""/>,這樣,在整個工程里面就會出現所有package錯誤,此時eclipse默認為package src.com.test, 而工程里面正確的包名應該是 package com.test
- 另外,如果新生成的.classpath文件class文件地址為bin目錄下的,即<classpathentry kind="output" path="/bin"/> ,tomcat部署工程的時候,默認去WebRoot/WEN-INF/classes這個目錄查找class文件,而此時class文件去不存在於bin目錄下面,故而tomcat下面沒有class文件,在啟動時也就會產生ClassNotFoundException錯誤!
如果碰到以上問題的話,則可以參考原始.classpath文件修改過來就可以了
以前沒有注意過.classpath文件,這次讓我深刻了解了它,代價比較嚴重,花了不少時間。現在想想歸結原因就是我把.classpath文件輕易刪除了。
在這里總結一下,警惕!