在寫java程式時,常常需要引用外部的library。
傳統只要把這些外部的library放置於jre/lib/ext/ ,便可以存取。
不過若是用eclipse開發java程式,
則可以在Project上按右鍵,可簡單的依下列方式引用外部的library
Properties-> Java Build Path-> Libraries-> Add External JARs
但是當Project要export出來成可執行的jar檔時,
若沒有對classpath做設定,可能造成jar檔找不到外部library的jar檔而無法執行。
過去我都把Project export出來的proj.jar 與外部的lib1.jar及lib2.jar放在同一個目錄,並寫一個bat檔來執行它們。
bat檔的內容如下: (其實這是佷久以前陶百神教我的)
java -classpath proj.jar;lib1.jar;lib2.jar Main-ClassName(沒有.class哦)
另一種方法是在export proj.jar檔前, 在MANIFEST.MF中加入下面這行設定:
Class-Path: lib1.jar lib2.jar
(用空白做分隔)
今天才發現原來eclipse有個很方便的plugin叫 Fat-jar
可以從Eclipse的選單,help-> software updates -> Find and Install -> Search for new features to install -> new remote site
會跳出一個輸入對話窗,要求plugin的名字和更新的來源,輸入如下:
Name: Fat Jar
URL: http://kurucz-grafika.de/fatjar
之後便開始安裝Fat-jar
Fat-jar 簡單易用,
直接在要export的Project上按右鍵,選"build fat-jar"
之後便會跳出選單,把你的Main-Class 設定好,按下一步。
接著把你要一起包進去的lib1.jar lib2.jar ...勾選,按下一步。
它就會幫你全部打包成一個xxx.jar檔,並放置於你的Project的根目錄下。
這個xxx.jar檔無論放在什麼位置,應該都是雙點便可執行的。
也可以在console下輸入java -jar xxx.jar 來執行它。
Reference:
Java World
http://www.javaworld.com.tw/jute/post/view?bid=20&id=111801&sty=1&tpg=1&age=0
請問一下要怎麼打包.jar檔案?
ReplyDelete我有修改一個Firefox Add-ons的jar,
我用7-Zip解開修改後打包不回去了?
我沒有裝Sun的那些東西,有簡單的方法可以打包嗎?
可以的話回信到我信箱,謝謝~
感謝教學~
ReplyDelete