国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

使用emacs-jde進(jìn)行Java開發(fā)

2019-11-18 12:05:03
字體:
供稿:網(wǎng)友

  進(jìn)行java開發(fā)的朋友們一般都使用某種IDE進(jìn)行開發(fā),比較常用的有JBuilder ,Visual Cafe,Visual Age等。使用IDE開發(fā)對(duì)于初學(xué)者是一種很好的手段。但對(duì)于熟悉了linux/unix開發(fā)習(xí)慣的朋友們,使用這樣的IDE進(jìn)行開發(fā)的缺點(diǎn)和限制是顯而易見的,首先,你不得不了解各個(gè)IDE不同的用法,同時(shí)不得不接受各種Wizard強(qiáng)加給你的代碼,這些代碼(尤其是經(jīng)過改動(dòng)之后)經(jīng)常是丑陋且令人費(fèi)解的。(本人就經(jīng)常對(duì)著JBuilder產(chǎn)生的丑陋代碼惡心)。其次,這些IDE一般都或多或少地使用了私有的工具或庫,對(duì)軟件的可移植性埋下了隱患。最后,最令我無法接受的是在我的機(jī)器(PIII500,128M,NT4)上,JBuilder的速度實(shí)在無法令人滿足(可能其他IDE在這方面好一些)。
  使用emacs(本文使用emacs來代表GNU emacs或XEmacs)來開發(fā)程序顯然是個(gè)很好的選擇,其效率、高度的可配置性和極其強(qiáng)大的功能足以讓任何人愛不釋手,本人更是標(biāo)準(zhǔn)的hardcore-xemacs-fan。由于Java的特性一些特性,使用emacs這樣的純編輯器來進(jìn)行Java開發(fā)也有其不方便之處,對(duì)于較大的項(xiàng)目,源文件經(jīng)常分布在繁多的目錄中(/com/foo/bar/.....),假如使用emacs進(jìn)行開發(fā),需要頻繁的敲入冗長的目錄名,這是一大不方便之處。其次,在Java編譯和運(yùn)行調(diào)試,我們需要向編譯器,虛擬機(jī)傳遞一些參數(shù),當(dāng)然,可以使用Makefile來實(shí)現(xiàn),但這些參數(shù)大多并不復(fù)雜,使用make 這樣功能強(qiáng)大的工具有些破費(fèi)了。還有,對(duì)于一些經(jīng)常使用的功能或語句如(System.out .PRintln,implements)每次使用都自己敲顯然太煩瑣。最后,對(duì)于一個(gè)OO語言來說,有一個(gè)類瀏覽器也是很方便的。
  
  現(xiàn)在,使用jde可以基本克服所有這些缺點(diǎn),將IDE的功能和emacs的優(yōu)點(diǎn)完美地結(jié)合起來。jde是一個(gè)使用emacs-lisp編寫的ide軟件包,主要部分有Paul KinnUCan開發(fā),在emacs中安裝jde后可以基本實(shí)現(xiàn)大多數(shù)商業(yè)IDE系統(tǒng)所提供的功能。由其主要特性有:
  
  針對(duì)Java的語法高亮顯示和縮進(jìn)。
  要害字及類方法等的自動(dòng)補(bǔ)全(SourceInsight?,目前還不很成熟).
  編譯錯(cuò)誤定位。
  框架代碼自動(dòng)產(chǎn)生(Listener,println等)
  工程文件(記錄編譯運(yùn)行調(diào)試參數(shù))
  樹狀類和文件瀏覽器顯示
  集成幫助(javadoc)及調(diào)試功能(jdb+gud)
  除了這些特征外,jde當(dāng)然具有emacs的一切優(yōu)秀特征,如可移植性(幾乎一切 OS),可配置性(幾乎是無限的,黑客的生命,:-))。下面將具體介紹jde的安裝及使用
  
  I.安裝
  由于jde是一個(gè)emacs-lisp語言包,它的安裝是非常方便的,當(dāng)然,需要具有 emacs配置的基本知識(shí)。首先,需要滿足其安裝要求,
  
  emacs,GNU Emacs 或XEmacs 19 版以上,軟硬件平臺(tái)不限。
  確認(rèn)安裝了jde需要的一些emacs-lisp包(package),有speedbar(類瀏覽器),semantic(語法分析),eieio(OO lisp),elib(Emacs lisp Utilities),另外,有些功能需要beanshell(什么是beanshell?www.beanshell.org) ,在XEmacs下運(yùn)行需要安裝FSF-compat包
  將jde包解開到某目錄,修改你的.emacs配置文件增加以下一些內(nèi)容: ; Set the debug option to enable a backtrace when a
  ;; problem occurs.
  ;; 當(dāng)有問題出現(xiàn)顯示錯(cuò)誤信息,便于調(diào)試
  (setq debug-on-error t)
  ;; Update the Emacs load-path to include the path to
  ;; the JDE and its require packages. This code assumes
  ;; that you have installed the packages in the emacs/site
  ;; subDirectory of your home directory.
  ;; 加載所需的package
  (add-to-list ´load-path (eXPand-file-name "~/emacs/semantic-1.3.3"))
  (add-to-list ´load-path (expand-file-name "~/emacs/speedbar-0.13"))
  (add-to-list ´load-path (expand-file-name "~/emacs/eieio-0.16"))
  (add-to-list ´load-path (expand-file-name "~/emacs/jde/lisp"))
  (add-to-list ´load-path (expand-file-name "~/emacs/elib-1.0"))
  ;; If you want Emacs to defer loading the JDE until you open a
  ;; Java file, edit the following line
  ;; 不自動(dòng)加載jde-mode
  (setq defer-loading-jde t)
  ;; to read:
  ;;
  ;; (setq defer-loading-jde t)
  ;;
  ;; 編輯.java文件時(shí)加載jde
  (if defer-loading-jde
  (progn
  (autoload ´jde-mode "jde" "JDE mode." t)
  (setq auto-mode-alist
  (append
  ´(("http://.java//´" . jde-mode))
  auto-mode-alist)))
  (require ´jde))
  
  假如安裝無誤的話,使用emacs打開java文件時(shí)將自動(dòng)進(jìn)入jde-mode,過程可能需要幾秒鐘,因?yàn)閖de將調(diào)用semantic對(duì)整個(gè)文件進(jìn)行語法分析。
  
  II.使用jde
  進(jìn)入jde-mode后,我們自然可以發(fā)現(xiàn)與普通Java-Mode有一些不同,首先是語法的高亮顯示更加"Java"化,一目了然。xemacs頂部的菜單也有了一些變化多了三個(gè)菜單項(xiàng),"JDE","Classes","Senator",JDE菜單里包括了JDE提供的所有功能,下面將具體介紹, "Classes"是JDE對(duì)Java文件進(jìn)行語法分析后生成的,包括了當(dāng)前文件中的所有類,變量,方法,可以通過選擇菜單的方式訪問相應(yīng)的代碼。而Senator菜單是由semantic包生成的,可以通過token的方式對(duì)源文件進(jìn)行搜索定位。下面我們來看看emacs-lisp為我們提供了什么樣的功能:
  
  JavaDoc支持:JavaDoc是JDK提供的文檔生成工具,通過遵循一定的規(guī)范對(duì)源代碼進(jìn)行注釋,JavaDoc可以生成整個(gè)程序的Java風(fēng)格文檔。在jde中,我們只需要將光標(biāo)定位在某 method的開始,按C-c C-v j,jde將自動(dòng)生成Javadoc框架注釋,在相應(yīng)的部分寫好說明后,可以使用javadoc工具生成Java風(fēng)格的文檔。
  
  自動(dòng)補(bǔ)全:將變量jde-enable-abbrev-mode變量設(shè)置為t,jde可以實(shí)現(xiàn)自動(dòng)補(bǔ)全的功能,避免我們手工輸入的煩瑣和易錯(cuò),補(bǔ)全主要有三種類型,首先要害字補(bǔ)全,即可以自動(dòng)補(bǔ)全Java語言的要害字,如我們敲入"impl",jde就會(huì)自動(dòng)補(bǔ)全成為implements(一個(gè)本人經(jīng)常拼錯(cuò)的要害字).其他的如abstract可以用"ab"來補(bǔ)全,當(dāng)然,這只是emacs-lisp雕蟲小技罷了,但重要的是,你可以通過對(duì)變量jde-mode-abbrevations變量的修改來自己定義那些要害字應(yīng)補(bǔ)全,應(yīng)怎樣補(bǔ)全(這樣太方便了!)。
  
  下面介紹對(duì)控制流結(jié)構(gòu)的補(bǔ)全,即if-else等結(jié)構(gòu)的補(bǔ)全,可以避免控制結(jié)構(gòu)寫大了以后結(jié)構(gòu)發(fā)生錯(cuò)誤,不過本人體會(huì)只要你有良好的編程習(xí)慣,這個(gè)東西用處不是太大。比較有用的還有變量名的補(bǔ)全,如我們?cè)谀矹ava文件中定義了名字較長的變量,名為 "variablenametoolong",在后面需要引用時(shí),我們不必記住變量的名字,在輸入頭幾個(gè)字母后,按M-/鍵,jde將自動(dòng)補(bǔ)全為相應(yīng)的變量名,假如有多個(gè)選擇,多次按M-/可以找到你需要的。SourceInsight式的全局method補(bǔ)全功能目前jde通過beanshell實(shí)現(xiàn),還不夠成熟。
  
  代碼框架:jde可以自動(dòng)生成特定類和代碼段的框架代碼,不需要用戶多次重復(fù)輸入,目前支持的有:
  
  import自動(dòng)生成,即不需要知道某class到底是在什么package里,敲入其名字后按C-c C-v C-z,jde會(huì)自動(dòng)調(diào)用beanshell找到相應(yīng)的package并自動(dòng)加入import;method重載自動(dòng)生成,即可以根據(jù)當(dāng)前繼續(xù)的類來自動(dòng)生成重載函數(shù)的框架;
  
  interface自動(dòng)生成,根據(jù)所implements的interface,自動(dòng)生成所需要的重載的函數(shù)(太方便了,不需要自己對(duì)著文檔一個(gè)一個(gè)地實(shí)現(xiàn)了);根據(jù)模版生成某特定類型類的框架,目前有WindowListener,ActionListener,Get/Set等等。以上這些模版都可以根據(jù)需要自己來修改,great!
  
  項(xiàng)目文件:將所有編譯,運(yùn)行參數(shù)一次存儲(chǔ)起來,設(shè)置好classpath,sourcepath ,mainclass...之后我們可以在任一文件的Buffer中按C-c C-v C-c對(duì)當(dāng)前文件進(jìn)行編譯, 按C-c C-v C-r可以自動(dòng)運(yùn)行項(xiàng)目,或按C-c C-v C-d進(jìn)行調(diào)試。
  
  集成幫助:設(shè)置好幫助文件的URL后,可以使用C-c C-v C-n自動(dòng)運(yùn)行啟動(dòng)Browser 來查看幫助,最好安裝emacs-w3m,這樣看幫助非常方便,更方便的是設(shè)置好Class的幫助文件后可以實(shí)現(xiàn)上下文敏感的幫助。在某符號(hào)上調(diào)用jde-help-symbol,可以自動(dòng)顯示該符號(hào)的幫助。
  
  類和文件的瀏覽:jde提供了三種方法,第一種即我們已提過的Class菜單,第二種是使用etags,第三種最強(qiáng)大的是使用speedbar實(shí)現(xiàn)的樹狀瀏覽器。幾乎和商業(yè)IDE使用的沒有任何區(qū)別,可以用圖形方式快速地訪問文件,類的方法及變量及其所依靠的包等等。
  
  調(diào)試:jde通過gud提供了對(duì)jdb的支持,同時(shí)為了更好地發(fā)揮jde的功能,jde的作者們還專門寫了一個(gè)自己的調(diào)試器JDEbug。遺憾的是對(duì)此本人研究不夠。
  
  III.配置
  jde擁有幾乎無限的可配置性,最基礎(chǔ)可以修改與jde相關(guān)的變量和key-binding等,深入一些的可以修改模版等,當(dāng)然最深入的就是直接Hack其源碼了。
  
  IV.總結(jié)
  本文簡要介紹了emacs下的Java IDE-jde的安裝使用和基本功能,希望更多的朋友能喜歡上emacs和jde.以上只是一最簡要的介紹,具體功能和妙處還需要在使用中體會(huì)。需要說明的一點(diǎn)是使用jde首先必須具有emacs的基本知識(shí),其次要有一點(diǎn)Hack精神,假如需要一個(gè)上手快的傻瓜式的IDE,那jde可能就不能滿足要求了。關(guān)于jde有關(guān)的資料,maillist等其他信息.

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 太保市| 南投市| 伊春市| 定襄县| 静海县| 商水县| 台南县| 凌源市| 深圳市| 苍山县| 石嘴山市| 汝州市| 登封市| 读书| 盘山县| 抚顺县| 遵化市| 罗江县| 慈溪市| 隆德县| 锡林郭勒盟| 庐江县| 夹江县| 安塞县| 扶余县| 昌邑市| 常德市| 澄江县| 吉木乃县| 东乡| 安仁县| 乳山市| 云和县| 东源县| 巴马| 泸州市| 泰州市| 定西市| 廊坊市| 廊坊市| 贵德县|