在導(dǎo)入網(wǎng)友提供的Tomcat源碼工程時(shí)候出現(xiàn)了
The project cannot be build until build path errors are resolved
Unbound classpath variable:"a_Tomcat6-depend/ant1.7/ant.jar " in project Tomcat6
弄了一個(gè)早上才意識(shí)到錯(cuò)誤出現(xiàn)在工程的“.classpath”文件里面
改文件內(nèi)容為:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="var" path="a_Tomcat6-depend/ant1.7/ant.jar"/>
<classpathentry kind="var" path="a_Tomcat6-depend/puretls-0.95/puretls-0.95.jar"/>
<classpathentry kind="var" path="a_Tomcat6-depend/commons/common-logging1.1.1/commons-logging-1.1.1.jar"/>
<classpathentry kind="var" path="a_Tomcat6-depend/jaxrpc1.1/jaxrpc.jar"/>
<classpathentry kind="var" path="a_Tomcat6-depend/jdt3.3/org.eclipse.jdt.core_3.3.0.v_771.jar"/>
<classpathentry kind="var" path="a_Tomcat6-depend/wsdl4j-1.5.1/wsdl4j-1.5.1.jar"/>
<classpathentry kind="output" path="classes"/>
</classpath>
發(fā)現(xiàn)目錄里并不存在"a_Tomcat6-depend"一文件夾,而實(shí)際目錄為“Tomcat6/lib/ant1.7/ant.jar”。于是
把該設(shè)置改為“lib/ant1.7/ant.jar”,依然報(bào)同類錯(cuò)誤。于是很自然地對“.classpath”定義的方式產(chǎn)生了興趣,終于找到一篇高
手寫的關(guān)于“eclipse下環(huán)境配置”的文章。
原來<classpathentry kind="var"
path="a_Tomcat6-depend/ant1.7/ant.jar"/>這種定義方式是運(yùn)用了eclipse的環(huán)境變量,換句話說
a_Tomcat6-depend 應(yīng)該是一個(gè)環(huán)境變量(make sense!)。
于是 Window->Refernces->Java->Build Path->Classpath Variables
定義了一個(gè)name為a_Tomcat6-depend
Then,Done.
eclipse中需要關(guān)聯(lián)到第三方JAR文件時(shí),可以直接添加JAR文件,也可以增加環(huán)境變量的形式來添加JAR文件,當(dāng)然原理都是一樣的,都是引用
JAR文件,除了可以直接右點(diǎn)擊工程,屬性,在"Java Build Path"中添加外,其實(shí)還可以直接編輯工程目錄下的
.classpath這個(gè)文件,這個(gè)文件即是記錄工程中的一些環(huán)境變量及工程中文件的輸出目的的,此文件結(jié)構(gòu)大至如下:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src/java"/>
<classpathentry kind="src" output="target/test-classes" path="src/test"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="var" path="MAVEN_REPO/activation/jars/activation-1.0.jar"/>
<classpathentry kind="var" path="MAVEN_REPO/mvc/jars/mvc-1.0.jar"/>
<classpathentry kind="var" path="MAVEN_REPO/ehcache/jars/ehcache-1.0.jar"/>
<classpathentry kind="var" path="MAVEN_REPO/CodeManager/jars/CodeManager-1.0.jar"/>
<classpathentry kind="var" path="MAVEN_REPO/jetspeed/jars/jetspeed-1.4.jar"/>


.
<classpathentry kind="var" path="MAVEN_REPO/dwr/jars/dwr-1.1.1.jar"/>
<classpathentry kind="var" path="MAVEN_REPO/servletapi/jars/servletapi-2.4.jar"/>
<classpathentry kind="var" path="MAVEN_REPO/jspapi/jars/jsp-api-2.0.jar"/>
<classpathentry kind="lib" path="D:/workspace/repository/junit/jars/junit-3.8.1.jar"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
其中,src是源文件輸出目的的,output是類文件輸出目的的,con是eclipse運(yùn)行時(shí)所需的核心包,var是通過環(huán)境變量的形式增加的一些
JAR包,lib是直接加入的JAR包,所以需要加入一些第三方的JAR文件時(shí),直接編輯此文件即可,eclipse不需重啟,工程即可生效.
有關(guān)說明:
有時(shí)從別的工程導(dǎo)入到另一個(gè)工程時(shí),工程名旁邊有一個(gè)紅插,而這時(shí)可能有很多人認(rèn)為是某個(gè)地方導(dǎo)入的不對,或有些文件沒導(dǎo)入完全,當(dāng)然也有這個(gè)可能,但大
多數(shù)是因?yàn)樵こ讨幸肓艘恍┉h(huán)境變量,而導(dǎo)入到本機(jī)上的eclipse時(shí),環(huán)境變量路徑發(fā)生了變化,eclipse找不到相關(guān)的JAR文年,所以工程名
旁邊有一個(gè)紅插,而且這時(shí)當(dāng)新建類,或編輯類時(shí),類文件都不會(huì)編繹的,甚至有人認(rèn)為此時(shí)是eclipse不能自動(dòng)編繹了,查看自動(dòng)編繹屬性時(shí)又是自動(dòng)編繹
的,換到其他工程時(shí)又可以自動(dòng)編繹,所以可能一時(shí)找不到原因,其實(shí)是.classpath文件中的一些環(huán)境變量的路徑不正確導(dǎo)致的,去掉或指向正確的路徑
即可