作為一位Java程序員,如果您沒有接觸過開源軟件、項目或框架的話,恐怕有些不可思議。轟轟烈烈的開源運動起源于Linux操作系統,Apache基金會在其中扮演了中流砥柱的角色,業界巨擘SUN,IBM, BEA 和Oracle等公司的積極參與,使得聲勢浩大的開源運動成為軟件開發領域勢不可擋的力量。2001年11月,IBM向Apache基金會捐獻出Visual Age for Java,這個看似窮途末路的產品經眾多高手的改造,演變為輝煌一時的Eclipse,直接擊敗了不開源的JBuilder,讓做編譯器起家的Borland公司幾乎關張大吉。Eclipse這個產品如此經典,以至于微軟的Visual Studio都得向它學習。在Apache Harmony的圍追堵截下,Java的發明者Sun公司一看勢頭不妙,于2006年宣布Java開源,隨后又公開了其旗艦級產品Solaris的源代碼。今年1月,開源的死對頭、冷酷自私的微軟也不得不在MS-RL協議下公開.Net的源代碼。但是,在這如火如荼的開源運動中,我們中國的程序員又有多少貢獻呢,我們開創了哪些框架、項目和產品,為開源界添磚加瓦呢?以筆者短淺的目光看來,我們對開源界貢獻的東西恐怕很少,能夠與國外經典開源項目一較高下的,少之又少矣!
作為一名中國的程序員,咱們能沒有遺憾嗎?為什么經典的Apache Web Server不是中國人寫的;為什么Linus Torvalds在大學時代就寫出Linux并振臂一呼,應者云集;為什么JBoss能與巨無霸式的Websphere相抗衡;為什么MySQL能在Oracle和SQL Server的夾擊下發展并壯大…… ?如此等等問題,在遺憾之余,我想我們應該花點時間好好思考一下,中國的軟件產業怎么了,中國的程序員又怎么啦?
首先,我們要敞開心胸,擁抱開源(Open
to Open
Source)。這重境界我們大家都能做到,拿來主義嘛,誰人不會。當我們的項目需要數據庫時,就去下載一個免費MySQL;需要IDE時,去下載
Eclipse;需要版本控制工具時,就去下載CVS;需要寫搜索引擎時,Lucene可能是我們的最愛;當我們開發J2EE
Web應用時,Struts/JSF加Hibernate/iBATIS再加上Spring或許成為我們的首選架構。但是,我們絕大部分程序員都停留在這
個層次上,大家下載之后,看看文檔介紹,安裝、配置并能運行,就以為萬事大吉,一切順利。偶爾遇到一些問題,去Google一搜,答案立馬可得。
其次,我們要深入開源,了解開源(Dig
into Open
Source)。要達到這個層次,就有些難度了。我們不但要知其然,還要知其所以然!爸渌匀弧钡淖詈棉k法就是下載源代碼,仔細研讀,揣摩并領會源代
碼的精義,看看這些經過諸多高手修改的源代碼究竟藏有什么玄機,我們能從其中學習到哪些設計思想及設計模式,能復用其中哪些源代碼,人家運用了哪些軟件管
理思想把這些來自世界各地程序員的勞動匯集成一個產品,代碼架構如何,軟件配置管理又是怎樣進行的……,等等等等,我們從源代碼中學習的東西太多了。在閱
讀源代碼時,我們要多問自己幾個為什么,這樣就會收獲更多。
再次,我們要融入開源,貢獻開源(Get
involved in Open
Source)。當我們徹底理解該項目源代碼后,我們應發揮一下“人人為我,我為人人”的思想,或結合您的實際需要,或結合您的新想法,或針對Mail
lists上的問題,對該開源項目加以改進和創新,并把自己的代碼貢獻出來,讓大家評估。當然,如果您有好的想法,您完全可以創建自己的開源項
目,Apache基金會中眾多的開源項目不都是我們廣大程序員一手創建的嗎?但是,在創建新開源項目時,切忌不要重新發明輪子。
還有,請把test目錄也加入到源代碼中,方法是在Eclipse中右擊”test”目錄,然后在彈出菜單中選擇“Build path”à”Use as Source Folder”,之后我們會看到test目錄上就多了個源代碼的符號,如上圖所示。
3.5在Eclipse中運行Tomcat。請找到Tomcat的啟動主類org.apache.catalina.startup.Bootstrap,右擊這個類,在彈出菜單中選擇“Run As…”à”Open Run Dialog…”,然后在彈出的“Run”窗口中填入程序運行參數“start”和JVM運行參數catalina.home,如下面窗口所示: