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 閱讀(1363) 評論(0)  編輯  收藏


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


          網站導航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           
          主站蜘蛛池模板: 资中县| 巴东县| 广东省| 潜江市| 秦皇岛市| 彰化市| 安多县| 桑植县| 江华| 新沂市| 新和县| 张家口市| 赣州市| 五华县| 清原| 民丰县| 西乌珠穆沁旗| 繁峙县| 淳安县| 从化市| 迭部县| 文山县| 乐东| 长白| 宁南县| 云安县| 泸西县| 吉安县| 德安县| 扎赉特旗| 油尖旺区| 平南县| 锡林浩特市| 阿拉善左旗| 页游| 那坡县| 静乐县| 商河县| 沈阳市| 仙游县| 吉隆县|