java指令碼初識Beanshell
來源:互聯網
上載者:User
指令碼語言的話說來有很多,前陣子才看完perl雖然不怎麼會用,但是真的在處理文檔上面確實不錯,特別是在Regex的應用,想練習Regex的話用perl作為平台來練習的確是個不錯的選擇,但是對於java支援的話,當然我首選的是groovy,他不但快捷易懂,而且對於學習java的人來說確實很容易上手。
這兩天剛買了本新書《java指令碼編程》裡面看到了很多的指令碼語言,但是讓我產生興趣的並不是其中大力推崇的groovy或者其他的Jython或者Rhino等其他指令碼語言,而是Beanshell,它是第一種引入java文法的指令碼語言,你可以把他當成是一種很小的、可嵌入的java原始碼解譯器。除此之外,它還擴充了java文法,像java1.5才有的foreach,autoboxing等等都比java有遠見的多,可能後續的這些java版本的修改都可能歸功於這些指令碼語言。(*^_^*)
其實最讓我吸引的是他的執行檔案的大小隻有在250KB的單個jar包,比起其他的指令碼語言都遠遠大於600KB以上的容量來看真是驚人的小,對於J2ME的應用的話它可能會是致命的。
可以從www.beanshell.org下載到最新的Beanshell版本,因為在執行大多數jar包都會使用 java -jar 命令來執行,所以最開的也是最方便的莫過於此,但是beanshell還提供了另外一種調用控制台的方式,但是你必須將beanshell此jar檔案載入到classpath中方可運行,我用的是ubuntu8.04所以直接在profile檔案中添加
export CLASSPATH=$CLASSPATH:/path-to_jar_location/bsh-xxx.jar(xxx為發布的版本號碼 )
隨後在terminal中輸入java bsh.Console 來啟動控制台,也可以使用java bsh.Interpreter helllo.bsh執行編譯的指令碼。
和groovy一樣beanshell也對訪問JavaBean屬性的方法作了映射,你不必使用get和set方法,直接使用file.name就可以直接調用了,指令碼語言的理念在這裡發揮的淋漓盡致,越少的代碼實現越多的功能,指令碼是適應人的語言,而不是適應機器的語言。