2010年9月11日

使用Groovy與OpenCSV,動態Class Library加載

由於Java程式依賴CLASSPATH設定,如果將需要的JAR檔都丟到CLASSPATH指定的lib路徑,很一定會造成資料夾內容凌亂不堪;但每次要執行Java程式都要以-cp指定自定CLASSPATH的話,又會是個麻煩事。
對於可以很方便寫小程式的Groovy來說,我喜歡使用懶人做法,把「開始資料夾\Groovy\Start GroovyConsole」打開就開始寫程式,特別是拋棄式的小程式,寫完執行目的達到就可以丟掉的那種,我可不想又為它建一個資料夾、存檔,而且還要跟需要的JAR檔放在一起。
在Groovy程式裡我們可以用this.class.classLoader.rootLoader.addURL()加載需要的JAR檔,而不需要去修改系統變數或是執行參數,JAR檔喜歡放在哪邊都沒關係。
以下的Sample程式碼,展示Groovy如何使用OpenCSV提供的CSVWriter建立一個CSV檔。
jar_file = new File("D:\\javalib\\opencsv-2.2\\deploy\\opencsv-2.2.jar")
csv_file = new File("D:\\yourfile.csv")

this.class.classLoader.rootLoader.addURL(jar_file.toURL())
import au.com.bytecode.opencsv.CSVWriter

String[] row = "one,two,three".split(',')

writer = new CSVWriter(new FileWriter(csv_file), (char)'\t')
writer.writeNext(row)
writer.close()

沒有留言:

張貼留言

lyhcode by lyhcode
歡迎轉載,請務必註明出處!