【原創】將Java程式變成可執行檔案的簡單方法
本文為原創,如需轉載,請註明作者和出處,謝謝!
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檔案,程式碼如下:
其中GetActiveWindow方法獲得當前視窗的控制程式碼。在本程式中使用了一個config.ini檔案來指定要執行的jar檔案,實現的完整程式碼如下:
在和exe相同的目錄下建立一個config.ini檔案,內容如下:
其中launcher.exe和config.ini也被包含在本文的下載檔案中。讀者只需要修改config.ini檔案中的相應的jar檔名即可。 也可以將launcher.exe改成其它的檔名。還有就是要修改launcher.exe檔案的圖示,可以直接在delphi2009(低版本的 delphi也可以,最好7.0以上)中改,也可以找一些編輯二進位制資源的程式,直接開啟launcher.exe檔案,修改其中的圖示。
當然,本程式也可以使用任何可生成原生可執行檔案的程式語言開發,如C、C++等。
OK,現在就可以通過雙擊launcher.exe檔案來呼叫jar包了。要想對launcher進行擴充套件,就直接修改原始碼吧。其實這個實現是非常非常地簡單!!!
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檔案,程式碼如下:
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->shellexecute(GetActiveWindow, 'open','javaw', '-jar my.jar', '', SW_NORMAL);
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->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.
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檔案,內容如下:
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->[config]
JarFile = jars\swt.jar
其中swt.jar檔案是執行的jar檔案,要放在當前目錄的jars目錄中。現在的目錄結果如下:Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->[config]
JarFile = jars\swt.jar
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->launcher.exe
config.ini
jars\swt.jar
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->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進行擴充套件,就直接修改原始碼吧。其實這個實現是非常非常地簡單!!!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12921506/viewspace-589242/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何讓shell指令碼變成可執行檔案指令碼
- 把 java project 釋出成為可執行檔案JavaProject
- 簡單恢復模式下執行檔案還原模式
- 將Python程式打包成可執行檔案薦Python
- (原創)Linux跟Window共享檔案的兩個簡單方法Linux
- Java執行exe,bat等可執行檔案JavaBAT
- Python程式碼打包成可執行檔案的常用方法!Python
- 將自己的python程式碼打包成exe的可執行檔案Python
- FreeWrap工具,將tcl/tk指令碼轉變為可執行檔案指令碼
- windows下打包java程式為帶jre的可執行檔案WindowsJava
- 將Python程式(.py)轉換為Windows可執行檔案(.exe)PythonWindows
- 【原創】Java多執行緒初學者指南(1):執行緒簡介Java執行緒
- 簡單的多執行緒複製檔案執行緒
- Wpf應用程式作為一個單獨的可執行檔案
- 手機將PDF檔案壓縮的簡單方法
- electron+puppeteer 封裝成exe可執行檔案封裝
- Java(j2se)編寫的程式如何生成可執行檔案?Java
- 將Python指令碼打包成可執行檔案Python指令碼
- 用py2exe將python檔案轉換成exe可執行程式Python行程
- docker執行golang可執行檔案最簡docker-compose fileDockerGolang
- 怎樣將class檔案變成.exe檔案?薦
- windows使用bat檔案 執行java程式WindowsBATJava
- 【原創】Java多執行緒初學者指南(5):join方法的使用Java執行緒
- 提高程式執行效率的10個簡單方法
- 易格式可執行檔案脫殼方法一則
- 一個簡單java程式的執行全過程Java
- pdf檔案太大如何變小 減小pdf檔案大小最簡單的方法
- Linux可執行的檔案(轉)Linux
- dotnet 使用 MSTestRunner 將單元測試製作為獨立可執行檔案
- 將Tomcat6原始碼轉成可執行的Eclipse專案Tomcat原始碼Eclipse
- 從C檔案到可執行elf檔案
- (譯) 在可執行檔案中新增選單項 - by Fenri
- C++程式怎樣呼叫exe可執行檔案C++
- Mach-O 可執行檔案Mac
- maven 打包可執行 jar 檔案MavenJAR
- MATLAB生成可執行檔案Matlab
- [原創]一個佇列的簡單Java實現佇列Java
- 怎麼生成可執行的.jar檔案???????????JAR