將Java程式變成可執行檔的簡單方法

來源:互聯網
上載者:User

本帖轉自

http://blog.csdn.net/nokiaguy/archive/2009/04/15/4684693.aspx

 

 

launcher下載







    運行Java
程式(
SWING

SWT
的傳統型程式)可以直接執行
.class
檔案或將所有的
.class
檔案及相關的其他檔案壓縮成
.jar
檔案,然後使 用
javaw -jar my.jar
來運行程式(其中
my.jar
是一個
jar
檔案名稱,可以是任何指定的
jar
檔案)。但在
windows
下,使用者習慣直接運行一個
exe
來執行 程式。在網上有很多程式可以將
my.jar

.class
檔案直接轉換成
exe
檔案。但很多都是將
jar

.class
檔案放到
exe
裡成,這樣不太方 便。有些工具,如
javalauncher
可以使用一個
exe
程式(用
c
語言寫的)來調用
jar
檔案。但有時需要在運行程式之間做些其他的工具,例如,在 用戶端動態從服務端下載最新版本的程式。因此,在本文將使用
delphi2009
實現一個簡單的可以調用
jar
檔案的程式,讀者可以對這個程式進行任何擴 展,本文還提供了該程式的原始碼和
exe
檔案。



    使用delphi
建立一個
VCL
工程。在本程式中不需要
form
,因此,可以將預設產生的
form
刪除。實際上,我們只需要調用
ShellExecute 
方法就可以通過
javaw
命令來執行
jar
檔案,代碼如下:



shellexecute(GetActiveWindow, 'open','javaw', '-jar my.jar', '', SW_NORMAL);



    其中GetActiveWindow
方法獲得當前視窗的控制代碼。在本程式中使用了一個
config.ini
檔案來指定要執行的
jar
檔案,實現的完整代碼如 下:

program launcher;


uses


  Forms,


  windows,shellapi, inifiles, sysUtils;




{$R *.res}


var


  ini: tinifile;


  JarFile: String;


begin


  Application.Initialize;


  ini := tinifile.Create(extractfilepath(application.ExeName) +  'config.ini');


  JarFile := ini.ReadString('config', 'JarFile', '');


 
 shellexecute(GetActiveWindow, 'open','javaw', PWideChar('-jar ' + JarFile), '', SW_NORMAL);


  ini.Free;


  Application.Run;


end.



    在和exe
相同的目錄下建立一個
config.ini
檔案,內容如下:

[config]


JarFile = jars/swt.jar

    其中swt.jar
檔案是執行的
jar
檔案,要放在目前的目錄的
jars
目錄中。現在的目錄結果如下:



launcher.exe


config.ini


jars/swt.jar



    其中launcher.exe

config.ini
也被包含在本文的下載檔案中。讀者只需要修改
config.ini
檔案中的相應的
jar
檔案名稱即可。 也可以將
launcher.exe
改成其它的檔案名稱。還有就是要修改
launcher.exe
檔案的表徵圖,可以直接在
delphi2009
(低版本的 
delphi
也可以,最好
7.0
以上)中改
,
也可以找一些編輯二進位資源的程式,直接開啟
launcher.exe
檔案,修改其中的表徵圖。





    
當然,本程式也可以使用任何可產生原生可執行檔的程式設計語言開發,如C

C++
等。





    OK,現在就可以通過雙擊
launcher.exe
檔案來調用
jar
包了。要想對
launcher
進行擴充,就直接修改原始碼吧。其實這個實現是非常非常 地簡單!!!


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.