myeclipse中的classpath .
myeclipse中的classpath是一個很重要的問題
myeclipse的在查找的時候都是按照其查找,而且myeclipse有一個專門的文件來保存classpath的信息,這也是別人的項目拷貝的時候需要的一個重要文件,不然這個項目要導入到自己的myeclipse中就會發(fā)生錯誤,此時就只能是手工來編寫這個文件,myeclipse的classpath文件就是項目根目錄下的“.classpath”文件,其格式如下:
<?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="con" path="melibrary.com.genuitec.eclipse.j2eedt.core.MYECLIPSE_JAVAEE_6_CONTAINER"/><classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/><classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/><classpathentry kind="output" path="WebRoot/WEB-INF/classes"/> </classpath>?
<classpath>... ...</classpath>??? 這個標簽中存放的便是classpath的信息,它一般包含以下五種形式:
?
1.<classpathentry kind="src" path="src"/>
?
????????? 對應的是source?folder類型的目錄,kind---表示這個classpath的類型,path表示在項目中的路徑,path使用根目錄的相對路徑(相對.classpath文件本身的相對路徑)?,myeclipse項目中的src本身就是一個source?folder,所以它會自動寫入這個文件中,如果自己手動建立了一個source?folder,這個folder也會寫入這個文件,形式就是以上形式eg.在項目基礎上新建一個test的source?folder,就會就會成為這樣:??<classpathentry?kind="src"?path="src"/>??
?????? ?<classpathentry?kind="src"?path="test"/>?
?
?
2、<classpathentry?kind="con"?path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
?
?這句是表示程序的運行環(huán)境?kind="con"---表示classpath的類型,con即是container,就是程序運行的容器,或者就說是運行環(huán)境也OK,它實際上是在Myeclipse最初的時候要配置installed?JREs中指定(一般情況下我們指定的是JDK),但是這里實際使用的是JDK下的JRE中的jar包,就是JDK_HOME/jre/lib就是對應的這條語句
?
?3、<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.j2eedt.core.MYECLIPSE_JAVAEE_6_CONTAINER"/>
?
????? 這句是kind="con"當然和上條一樣,是表示運行時的容器,一般情況下是java?web項目才會有,它是包含了J2EE服務器要使用到的一些jar包,這個目錄中的jar包是其中最特殊的,那就是它不會在部署項目的時候部署到服務器上去,因為myeclipse認為這樣的jar包是服務器應該有的,所以這里有時候會出現(xiàn)問題,就是開發(fā)的時候不出現(xiàn)問題,但是部署之后會出錯,就是有的服務器有的jar包并沒有提供,比如tomcat(因為tomcat并不是專業(yè)的web服務器,它只是一個輕量的web容器),這就要區(qū)分好開發(fā)環(huán)境和運行環(huán)境??。
?
4.<classpathentry?kind="lib"?path="WebRoot/WEB-INF/lib/bsf-2.3.0.jar"/>
?
這條語句kind="lib",對應的是classpath中的庫文件,path指定庫文件的路徑,同樣是相對與項目根目錄的相對路徑??
?
5、<classpathentry?kind="output"?path="WebRoot/WEB-INF/classes"/>
這條表示項目的輸出目錄,整個之前定義的classpath無論是kind='src",kind="con",kind="lib",在編譯后都會進入到這個目錄中來,在java web中也就是WebRoot/WEB-INF/classes。同樣使用的path是相對項目根目錄的相對路徑(相對.classpath文件本身的相對路徑),但是由于J2EE部分的是本身要求web 服務器本身要有那些jar包,所以那個例外不會進行拷貝?
?
總結
kind=”src" ----對應source folder目錄
kind="con"--項目的容器,一般當是java web項目的時候會有兩個
kind="lib"---項目中使用到的庫文件
kind='output"--輸出目錄,最終編譯后相關文件的目標目錄,myeclipse會自動完成相關的拷貝
?
?
實踐: 使用myEclipse 9作為IDE,下載一個web工程,編輯發(fā)現(xiàn)缺少servlet.jar、jsp.jar,部署到Tomcat能正常運行,因為Tomcat 自帶了這幾個包,只是在開發(fā)環(huán)境找不到,打開工程-》property-->java build path-->libray
發(fā)現(xiàn)里面有一項:melibrary.com.genuitec.eclipse.j2eedt.core.MYECLIPSE_JAVAEE_6_CONTAINER 里面沒有jar包,查上面資料,發(fā)現(xiàn)這個目錄就是我要找的東西,只在開發(fā)環(huán)境中使用,部署的時候不會拷到tomcat的目錄,所以要為這個目錄增加需要的jar包,反復測試,發(fā)現(xiàn)這個目錄的jar包沒有辦法增加。換思路,這個是工程里有的路徑,而我的myEclipse里沒有這個路徑,所以沒有jar包,那么換成myEclipse有的環(huán)境不就行了。
點擊 add library 按鈕--》myEclipse library -->j2EE 1.5 librariesu?? 問題解決。
總結
以上是生活随笔為你收集整理的myeclipse中的classpath .的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java--HashMap与Hashta
- 下一篇: 日志管理:(五) log4j.xml 配