小知識筆記
一、Eclipse虛擬機器設定
Eclipse需要運行在JVM上的,MyEclipse安裝的時候貌似也會順便安裝個jre,然後啟動並執行時候在這個jre上。Eclipse也是的,不過經常Eclipse啟動後,會提示你說它需要運行在jdk上,但是現在運行在jre上,這樣的情況下,Eclipse常常有反應不過你的操作,而卡死。這就需要配置一下Eclipse的初始化啟動參數了。
Eclipse安裝目錄下和eclipse.exe同目錄,有個eclipse.ini,用編輯器開啟該檔案,配置如下:
-startup
plugins/org.eclipse.equinox.launcher_1.0.200.v20090520.jar
-vm
D:/tool/jdk6/bin/javaw.exe
添加了紅色部分的參數,虛擬機器指向本機安裝的jdk中的javaw.exe,需要注意的是,這個路徑不允許有空格,所以,安裝jdk的時候,不要採用有空格的安裝路徑。
很多人安裝jdk,比較懶,採用預設的Program Files,這裡面有空格,而且有空格的路徑,還有很多其他的壞處。
二、Server的配置
Eclipse中設定管理員和MyEclipse設定管理員是不一樣的。
MyEclipse設定管理員,比如說tomcat,現在有個tomcat6放在D:/,那麼MyEclipse是將伺服器指向這個D:/tomcat6,當我們發布工程的時候,Myeclipse會把工程按照打成war包的形式,以檔案夾的形式拷貝到D:/tomcat6/webapps下面的。發布多次的話也就拷貝多次,而且支援自動更新。
對於Eclipse,配置Server後,也是指向D:/tomcat6。不同的是,它會在工作區下面建立一個Servers檔案夾,下面放配置server的設定檔,可以配置多個Server,互不干擾的。發布工程的時候,工程的內容不是copy到指向的伺服器下面的,而是放到工作區下面的某個路徑下。
比如工作區是:D:\wspace
工程名稱是:mybatis
那麼發布工程到伺服器的時候,比如tomcat,在工作區/Servers下面的tomcat對應的server.xml
中自動設定了如下:
<Context path="/mybatis" docBase="mybatis" ></Context>
這樣伺服器啟動的時候,會去找工程發布的檔案,去哪找呢?在這裡:
{工作區}\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
在這下面找mybatis,也就是docBase的值。如果以上的伺服器是workspace中第一個配置的伺服器,
那麼就是tmp0,如果接著在配置多個伺服器就是tmp1,tmp2,以此類推。
Eclipse另一種配置Server的方式:
Ecliipse配置Server,通常是先配置了runtime的,比如tomcat,Eclipse添加Server時,需要指定它的runtime,這就先要配置好runtime。
runtime配好後,就可以由一個runtime來配置多個Server。一個runtime可以配置多個Server。在runtime的基礎上建立Server很簡單的,不多說,配好了就如下:
同時可以看到建立的server的設定檔:
這裡面建立Server時,還添加了一個工程,,雙擊那個server [ tomcat6-exerc ]得到如下的配置頁面:
這上面可以對對我們建立的Server進行詳細的配置。在Server Locations下面,建議選擇Use Tomcat installation單選,這個時候Server path指向到了runtime的tomcat的目錄下了。另外在Deploy path,可以指定到runtime那個tomcat的webapps下。
通常,時間久了,我們的電腦上就會有越來越多的工程。我們一般不會把我們所有的工程都發布到同一個tomcat下的,那樣很亂,而且啟動起來很久又容易出錯的。有時,為瞭解決這個問題,我們會拷貝很多個tomcat,分別發布不同類型的工程,以免搞得太混了。但是tomcat多了,也占空間啊。
上面的方法,就可以解決這些問題。我們可以只使用少數幾個tomcat,甚至只需要一個tomcat,但是發布的時候,指向到不同的目錄,可以在本機盤上,建個目錄專門來放發布的東西。根據以上配置Deploy path來管理髮布。
三、配置Dynamic Web Project
在Eclipse中如果工程不是Dynamic Web Project,無法發布到tomcat中,需要配置Project Facets。
右鍵工程Properties,選擇Project Facets菜單,然後把右邊的Dynamic Web Module打勾,下方出現"Further Configuration Available",點擊[配置Context root和Context directory,初始值:
Context root=工程名
Context directory=WebContent
一般Context root的值不改,就是工程名稱。而Context directory不會總是恰好是工程目錄下的WebContent,修改Context directory的值為WEB-INF所在的目錄,例如Maven項目,值為:src/main/webapp,儲存以後,如果我們填的Context directory值在工程根目錄下不存在,它會為我們產生這樣的目錄,而且目錄下面還會建立META-INF,WEB-INF/lib,WEB-INF/web.xml勾選的話。
整個配置好了,工程就是具有Dynamic Web Project特性,發行就緒到tomcat的。
發布好了,查看server.xml:
自動給我們添加了:
<Context docBase="mybatis" path="/mybatis" reloadable="true" source="org.eclipse.jst.jee.server:mybatis"/>
查看發布的東西:
D:\wspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\mybatis
當前的情況是,這個目錄在Eclipse的工作去內,而且所在的目錄位置有點隱秘啊,這個時候,可以配置一下上面提到的server.xml檔案那個<Context>節點的docBase值,讓它指向工程的絕對路徑,如下:
<Context docBase="D:/wspace/mybatis/WebContent" path="/mybatis" reloadable="true" source="org.eclipse.jst.jee.server:mybatis"/>
這樣訪問也是一樣的,不過這個對項目的配置還是有一定要求得D:/wspace/mybatis/WebContent下有WEB-INF,其下有lib和classes。整個工程的源檔案編譯後的class必須放到這個classes下,而且lib目錄需要有足夠的jar包來運行工程,當然,WEB-INF/lib下面的jar包和tomcat/lib下的jar包是不能重複的,否則報錯。