(轉)java之runnable jar與普通jar


背景:項目中有時候需要導出相關的jar包,可是總是不能分清楚。

1 導出包

導出普通jar包(可作為第三方庫,類似dll,so等)

在eclipse中右鍵選擇except->java->jar file。

導出可運行的jar包(可以雙擊運行,類似exe文件)

在eclipse中右鍵選擇except->java->Runnable jar file。

可運行的jar包是需要jre環境的有兩種方式可以解決這個問題

1.在目標機上安裝jre環境(例如裝jdk),並配置環境變量(一般是path變量值是jre的bin目錄路徑),是否成功,在dos中直接java能識別為止。

2.jre和jar一塊發布,在寫一個bat文件用隨帶的jre運行jar,也可用本地寫一個exe在里面執行dos命令。

3.把jar轉換成exe文件(雖然轉成exe,運行還是需要jre環境的),在jar轉exe時可以指定jre的路徑,我們可以然exe和jre放到一個目錄中一塊交給用戶。工具exe4j(install4j和exe4j是一塊的功能更多),Jsmooth。(教程參見 http://wenzongliang.iteye.com/blog/2144703

 1.1 導出jar包

詳細過程:
(1). 首先在Eclipse中打開項目, 右鍵點擊項目,選擇“Export”;

(2). 選擇Java/JAR file(導出可運行的選擇Java/Runnable JAR file),Next;

(3). Select the resources to export中可以選擇你想要包含的項目文件夾,一些不必要的文件夾就無需放進去了,免得增大空間;

這里有幾個選項:

    * Export generated class files and resources 表示只導出生成的.class文件和其他資源文件
    * Export all output folders for checked projects 表示導出選中項目的所有文件夾
    * Export java source file and resouces 表示導出的jar包中將包含你的源代碼*.java,如果你不想泄漏源代碼,那么就不要選這項了
    * Export refactorings for checked projects 把一些重構的信息文件也包含進去

在Select the export destination中選擇導出的jar的路徑,Next

(4.) 下一頁可以選擇是否導出那些含有警告warning或者錯誤errors的*.class文件。一般不用理他,Next

(5). 下一個頁面里可以對項目做一些配置。

    * Generate the manifest file是系統幫我們自動生成MANIFEST.MF文件,如果你的項目沒有引用其他class-path,那可以選擇這一項。
    * Use existing mainfest from workspace。這是可以選擇我們自定義的.MF文件,格式如上所寫。
    * Seal content。要封裝整個jar或者指定的包packet
    * Main class。這里可以選擇你的程序入口,將來打包出來的jar就是你這個入口類的執行結果。(這個在下面細講)

最后Finish,搞定。

 1.2 兩個jar包之間的區別

普通jar與可運行的jar差別:

創建可執行的JAR包關鍵在於:讓java命令知道JAR包中哪個是主類(有main方法的那個類,開始運行的那個類),javaw命令可以通過該主類來運行程序,這就需要借助清單文件,需要在清單文件中增加如下一行:

Main-Class: accp.ui.Test2

注意這個文件格式要求非常嚴格:

Main-Class:<空格>包名.類名<回車>  注意后面必段有一個回車。

MANIFEST.MF文件:

l  每行只能定義一個key-value對,每行必須頂格寫。

l  每組key-value之間以: (英文冒號后緊跟一個英文空格)。

l  文件開頭不能有空行。

l  文件必須以一行空行結束。

 1.3 實驗代碼

做實驗的代碼

public class Week_9{  
    public static void main(String args[]){  
        JFrame frame = new JFrame("Java表格") ;  
        String[] titles = {"姓名","年齡","性別"} ;        //表格標題  
        Object [][] userInfo = {  
            {"小強",30,"男"} ,  
            {"小明",23,"女"}   
        } ;                                             // 初始化數據  
        JTable table = new JTable(userInfo,titles) ;    // 建立表格  
        JScrollPane scr = new JScrollPane(table) ;      //用可滾動的JScrollPanel來包裝JTable  
        frame.add(scr);                                 //將JScrollPanel添加進窗口中  
        frame.setSize(400, 200);  
        frame.setLocation(300, 50);  
        frame.setVisible(true);  
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
    } 

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM