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++代码:

4f1150b881333f12a311ae9ef34da474.png#include"stdafx.h"4f1150b881333f12a311ae9ef34da474.png#include"resource.h"4f1150b881333f12a311ae9ef34da474.png

4f1150b881333f12a311ae9ef34da474.png#include4f1150b881333f12a311ae9ef34da474.png#include4f1150b881333f12a311ae9ef34da474.png#include4f1150b881333f12a311ae9ef34da474.png

4f1150b881333f12a311ae9ef34da474.pngintAPIENTRY WinMain(HINSTANCE hInstance,

4f1150b881333f12a311ae9ef34da474.png                     HINSTANCE hPrevInstance,

4f1150b881333f12a311ae9ef34da474.png                     LPSTR     lpCmdLine,

4f1150b881333f12a311ae9ef34da474.pngintnCmdShow )

1fa987a29c6482f53d401256f96355eb.png

ca75c07623e1b494fee67e8f316fc310.gif{

d18c02628675d0a2c816449d98bda930.png    TCHAR exeFullPath[MAX_PATH];

d18c02628675d0a2c816449d98bda930.png    GetModuleFileName(NULL,exeFullPath,MAX_PATH);

d18c02628675d0a2c816449d98bda930.pngcharcmd[MAX_PATH+20]="";

d18c02628675d0a2c816449d98bda930.png    sprintf(cmd,"java.exe -jar \"%s\"",exeFullPath);

d18c02628675d0a2c816449d98bda930.png    WinExec(cmd,SW_HIDE);

d18c02628675d0a2c816449d98bda930.pngreturn0;

8f1ba5b45633e9678d1db480c16cae3f.png}4f1150b881333f12a311ae9ef34da474.png

DELPHI代码:

4f1150b881333f12a311ae9ef34da474.pngprogram Sunking;

4f1150b881333f12a311ae9ef34da474.png

4f1150b881333f12a311ae9ef34da474.pnguses

4f1150b881333f12a311ae9ef34da474.png  Forms,

4f1150b881333f12a311ae9ef34da474.png  Windows;

4f1150b881333f12a311ae9ef34da474.png

4f1150b881333f12a311ae9ef34da474.png  {$R*.res}

4f1150b881333f12a311ae9ef34da474.pngbegin4f1150b881333f12a311ae9ef34da474.png    WinExec(PChar('java.exe -jar "'+Application.ExeName+'"'), SW_HIDE);

4f1150b881333f12a311ae9ef34da474.pngend.

4f1150b881333f12a311ae9ef34da474.png

posted on 2005-08-16 18:04 SunKing's Blog 阅读(1265) 评论(0)  编辑  收藏

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值