eclipse+fjep(one-jar)打包java工程為單一的jar

來源:互聯網
上載者:User
     本文說明如何使用eclipse+fjep外掛程式打包java工程為一個單一的可執行jar,使得即使使用了額外三方的jar也能發布單一的jar
fjep :http://fjep.sourceforge.net/
fjep tutorial(http://fjep.sourceforge.net/fjeptutorial.html)說明了如何用fjep打包,fjep的工作是展開三方的jar,直接將三方classes以檔案夾(package)的形式打入客戶jar
比如:客戶工程為fjepdemo(僅一個java檔案:fjepdemo/Demo.java),使用了一個lib(jar)為fjeplib.jar(包含:fjeplib/lib.class),用fjep打包後的檔案結構如下:

fjepdemo.jar
  /fjepdemo/Demo.class
  /fjeplib/lib.class

fjeplib.jar在新發布的jar中不再以jar的形式出現。

假如三方的jar規定不允許修改發布,就不能這樣展開處理,此時可用one-jar處理,“ The One-JAR option integrates a specialised Class-Loader written by Simon Tuffs ( http://one-jar.sourceforge.net/ ) which handles jar-files inside a jar.”

one-jar已整合到fjep中,打包中可勾上複選框 one-jar,此時fjeplib被打到fjepdemo.jar/lib/fjeplib.jar中, 客戶並未對三方的jar進行任何修改。

另外,假設工程用到了額外的資源檔,比如IO操作,要讀寫一個txt檔案,則不能以普通的檔案路徑來讀寫。package fjepdemo;
import fjeplib.Lib;
import java.io.*;
public class Demo ...{

    /** *//**
     * @param args
     */
    public static void main(String[] args) throws IOException...{
        // TODO Auto-generated method stub
        Lib.print();
        InputStream is = Demo.class.getResourceAsStream("/1.txt");//注意資源檔的路徑
        System.out.println(is.available());
    }

}

最後打包之後的檔案結構如下
fjepdemo.jar
  /META-INF
    ...
  /main
    ...
  /lib
    fjeplib.jar
  /com
    ...//one-jar的內容
  1.txt

控制台運行該jar>java -jar fjepdemo.jar

可參考:
http://fjep.sourceforge.net/
http://one-jar.sourceforge.net/ 
http://www-128.ibm.com/developerworks/cn/java/j-onejar/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.