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