SunKing's Blog

          留言簿(42)

          Java鏈

          友鏈

          閱讀排行榜

          評論排行榜

          [原創]我也來做一個最簡單的Java2EXE的運行器

          我也來做一個最簡單的Java2EXE的運行器
                                --羅時民

          前段時間有空試了一下Java轉成Exe可執行文件的幾種方法。想想也自己試著用VC++和Delphi分別做了一個最簡單的例子:
          原理:
          1.將自己Java做的Application程序打包成可執行的Jar文件(在MANIFEST.MF中指定Main-Class: 類名)
          2.用VC++,Delphi或其他語言生成可執行的EXE文件,這個EXE的功能是調用COMMOND命令" java -jar Jar文件名",以達到利用EXE執行Jar文件的作用
          3.采用了一個小技巧,即利用copy /b "A.exe"+"B.jar" "C.exe"的DOS 命令,將EXE文件和JAR文件合并成一個C.EXE文件,這樣C.EXE即包含A.EXE文件的內容,又包含B.jar文件的內容.  當合并完成后,C.exe文件就可以用  java -jar C.exe 來執行,所以我們在代碼里,只要調用 "java -jar 程序自身的文件名" 就可以了.

          缺陷:
          1.這是最簡單的方式了,還是沒有脫離JVM
          2.沒有配置文件,當需要設置classpath或其他參數時,則需要改寫該程序
          3.可以用WinRar,WinZip工具打開EXE文件(這一點和JBuilder生成的EXE文件一樣)

          以下給出代碼: 

          VC++代碼:
          #include "stdafx.h"
          #include 
          "resource.h"

          #include 
          <stdio.h> 
          #include 
          <string.h> 
          #include 
          <math.h>

          int APIENTRY WinMain(HINSTANCE hInstance,
                               HINSTANCE hPrevInstance,
                               LPSTR     lpCmdLine,
                               
          int       nCmdShow )
          {
              TCHAR exeFullPath[MAX_PATH];
              GetModuleFileName(NULL,exeFullPath,MAX_PATH);
              
          char cmd[MAX_PATH+20= "";
              sprintf(cmd,
          "java.exe -jar \"%s\"",exeFullPath);
              WinExec(cmd,SW_HIDE);
              
          return 0;
          }

           

          DELPHI代碼:

          program Sunking;

          uses
            Forms,
            Windows;

            {$R 
          *.res}
          begin
              WinExec(PChar(
          'java.exe -jar "'+ Application.ExeName+'"'), SW_HIDE);
          end.

           

          原代碼下載(含工程及測試文件)

          posted on 2005-08-16 18:04 SunKing's Blog 閱讀(1354) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 布尔津县| 莱州市| 乐东| 林甸县| 林口县| 治县。| 彩票| 恩平市| 留坝县| 龙岩市| 华安县| 铅山县| 团风县| 武宣县| 金寨县| 京山县| 福鼎市| 迭部县| 宾阳县| 全椒县| 迁安市| 南陵县| 西丰县| 汝阳县| 廊坊市| 会昌县| 西吉县| 新乡市| 四川省| 巴林右旗| 贵德县| 西昌市| 盐亭县| 邢台市| 阜新市| 临汾市| 扎兰屯市| 普洱| 塔城市| 北流市| 禹州市|