[原创]我也来做一个最简单的Java2EXE的运行器

[原创]我也来做一个最简单的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 .

 

原代码下载(含工程及测试文件)

你可能感兴趣的:([原创]我也来做一个最简单的Java2EXE的运行器)