将java程序打包成exe
来源:百度文库 编辑:神马文学网 时间:2024/04/26 05:58:24
本帖链接
这个不知选啥分类了。。。。虽说是delphi程序,但是操作的核心却是java。。。不管了。。还是点了个 java类。。。下面进入正题:
从java刚出来时,就研究这个问题了,由于java是跨平台的,如果打包成exe,就变成了只有windows下才能使用的程序,与java的本来意愿不符。所以我一直在寻找一种既能打包,又能不破坏兼容性的方法。
网上有许多java打包工具,都能把java的class文件弄成exe,但是如果想要兼容其他的平台,那就只有自己动手写代码了。在此,我选用了Delphi对java程序进行打包,因为只有Delphi才能够直接跨平台,它与java的配合是相当默契的。经过打包的程序能同时在windows和Red Hat linux下运行。
下面给出源代码:
首先制作一个资源文件,命名为Java.rc,内容如下:
App javafile App.class
然后保存,在控制台下用Brcc32 Java.rc命令行编译
编译完成后生成一个Java.res文件,在程序中引用这个文件就相当于导入了该class文件
program JavaApp;
uses
Registry,Classes,
{$IFDEF MSWINDOWS}Windows{$ENDIF}
{$IFDEF LINUX}Qt,QTypes,QStyle{$ENDIF};
{$R java.RES}
{$R *.res}
var
{$IFDEF MSWINDOWS}Reg:TRegistry;{$ENDIF}
Java_HOME:string;
Java:string;
JavaStream:TResourceStream;
begin
{$IFDEF MSWINDOWS}
Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey('SYSTEM\ControlSet001\Control\Session Manager\Environment',true);
Java_HOME:=reg.ReadString('JAVA_HOME');
Reg.Free;
{$ELSE $IFDEF LINUX}
Java_HOME:='Root/Bin/J2SDK';
{$ENDIF}
{$IFDEF MSWINDOWS}
Java:=Java_HOME+'\Bin\Java.exe';
{$ELSE $IFDEF LINUX}
Java:=Java_HOME+'/Bin/Java.so';
{$ENDIF}
JavaStream:=TResourceStream.Create(HInstance,'App','javafile');
JavaStream.SaveToFile('App.class'); 将java程序打包成exe
本帖链接
这个不知选啥分类了。。。。虽说是delphi程序,但是操作的核心却是java。。。不管了。。还是点了个 java类。。。下面进入正题:
从java刚出来时,就研究这个问题了,由于java是跨平台的,如果打包成exe,就变成了只有windows下才能使用的程序,与java的本来意愿不符。所以我一直在寻找一种既能打包,又能不破坏兼容性的方法。
网上有许多java打包工具,都能把java的class文件弄成exe,但是如果想要兼容其他的平台,那就只有自己动手写代码了。在此,我选用了Delphi对java程序进行打包,因为只有Delphi才能够直接跨平台,它与java的配合是相当默契的。经过打包的程序能同时在windows和Red Hat linux下运行。
下面给出源代码:
首先制作一个资源文件,命名为Java.rc,内容如下:
App javafile App.class
然后保存,在控制台下用Brcc32 Java.rc命令行编译
编译完成后生成一个Java.res文件,在程序中引用这个文件就相当于导入了该class文件
program JavaApp;
uses
Registry,Classes,
{$IFDEF MSWINDOWS}Windows{$ENDIF}
{$IFDEF LINUX}Qt,QTypes,QStyle{$ENDIF};
{$R java.RES}
{$R *.res}
var
{$IFDEF MSWINDOWS}Reg:TRegistry;{$ENDIF}
Java_HOME:string;
Java:string;
JavaStream:TResourceStream;
begin
{$IFDEF MSWINDOWS}
Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey('SYSTEM\ControlSet001\Control\Session Manager\Environment',true);
Java_HOME:=reg.ReadString('JAVA_HOME');
Reg.Free;
{$ELSE $IFDEF LINUX}
Java_HOME:='Root/Bin/J2SDK';
{$ENDIF}
{$IFDEF MSWINDOWS}
Java:=Java_HOME+'\Bin\Java.exe';
{$ELSE $IFDEF LINUX}
Java:=Java_HOME+'/Bin/Java.so';
{$ENDIF}
JavaStream:=TResourceStream.Create(HInstance,'App','javafile');
JavaStream.SaveToFile('App.class');
{$IFDEF MSWINDOWS}
WinExec(PChar(Java+' App'),SW_Hide);
{$ELSE $IFDEF LINUX}
asm
Call RH.Run(PChar(Java+' App'));
end;
{$ENDIF}
JavaStream.Free;
end.
一切搞定,现在可以运行EXE了。如果要放到Linux下运行,只需要把EXE改成SO就行了
{$IFDEF MSWINDOWS}
WinExec(PChar(Java+' App'),SW_Hide);
{$ELSE $IFDEF LINUX}
asm
Call RH.Run(PChar(Java+' App'));
end;
{$ENDIF}
JavaStream.Free;
end.
一切搞定,现在可以运行EXE了。如果要放到Linux下运行,只需要把EXE改成SO就行了
这个不知选啥分类了。。。。虽说是delphi程序,但是操作的核心却是java。。。不管了。。还是点了个 java类。。。下面进入正题:
从java刚出来时,就研究这个问题了,由于java是跨平台的,如果打包成exe,就变成了只有windows下才能使用的程序,与java的本来意愿不符。所以我一直在寻找一种既能打包,又能不破坏兼容性的方法。
网上有许多java打包工具,都能把java的class文件弄成exe,但是如果想要兼容其他的平台,那就只有自己动手写代码了。在此,我选用了Delphi对java程序进行打包,因为只有Delphi才能够直接跨平台,它与java的配合是相当默契的。经过打包的程序能同时在windows和Red Hat linux下运行。
下面给出源代码:
首先制作一个资源文件,命名为Java.rc,内容如下:
App javafile App.class
然后保存,在控制台下用Brcc32 Java.rc命令行编译
编译完成后生成一个Java.res文件,在程序中引用这个文件就相当于导入了该class文件
program JavaApp;
uses
Registry,Classes,
{$IFDEF MSWINDOWS}Windows{$ENDIF}
{$IFDEF LINUX}Qt,QTypes,QStyle{$ENDIF};
{$R java.RES}
{$R *.res}
var
{$IFDEF MSWINDOWS}Reg:TRegistry;{$ENDIF}
Java_HOME:string;
Java:string;
JavaStream:TResourceStream;
begin
{$IFDEF MSWINDOWS}
Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey('SYSTEM\ControlSet001\Control\Session Manager\Environment',true);
Java_HOME:=reg.ReadString('JAVA_HOME');
Reg.Free;
{$ELSE $IFDEF LINUX}
Java_HOME:='Root/Bin/J2SDK';
{$ENDIF}
{$IFDEF MSWINDOWS}
Java:=Java_HOME+'\Bin\Java.exe';
{$ELSE $IFDEF LINUX}
Java:=Java_HOME+'/Bin/Java.so';
{$ENDIF}
JavaStream:=TResourceStream.Create(HInstance,'App','javafile');
JavaStream.SaveToFile('App.class'); 将java程序打包成exe
本帖链接
这个不知选啥分类了。。。。虽说是delphi程序,但是操作的核心却是java。。。不管了。。还是点了个 java类。。。下面进入正题:
从java刚出来时,就研究这个问题了,由于java是跨平台的,如果打包成exe,就变成了只有windows下才能使用的程序,与java的本来意愿不符。所以我一直在寻找一种既能打包,又能不破坏兼容性的方法。
网上有许多java打包工具,都能把java的class文件弄成exe,但是如果想要兼容其他的平台,那就只有自己动手写代码了。在此,我选用了Delphi对java程序进行打包,因为只有Delphi才能够直接跨平台,它与java的配合是相当默契的。经过打包的程序能同时在windows和Red Hat linux下运行。
下面给出源代码:
首先制作一个资源文件,命名为Java.rc,内容如下:
App javafile App.class
然后保存,在控制台下用Brcc32 Java.rc命令行编译
编译完成后生成一个Java.res文件,在程序中引用这个文件就相当于导入了该class文件
program JavaApp;
uses
Registry,Classes,
{$IFDEF MSWINDOWS}Windows{$ENDIF}
{$IFDEF LINUX}Qt,QTypes,QStyle{$ENDIF};
{$R java.RES}
{$R *.res}
var
{$IFDEF MSWINDOWS}Reg:TRegistry;{$ENDIF}
Java_HOME:string;
Java:string;
JavaStream:TResourceStream;
begin
{$IFDEF MSWINDOWS}
Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey('SYSTEM\ControlSet001\Control\Session Manager\Environment',true);
Java_HOME:=reg.ReadString('JAVA_HOME');
Reg.Free;
{$ELSE $IFDEF LINUX}
Java_HOME:='Root/Bin/J2SDK';
{$ENDIF}
{$IFDEF MSWINDOWS}
Java:=Java_HOME+'\Bin\Java.exe';
{$ELSE $IFDEF LINUX}
Java:=Java_HOME+'/Bin/Java.so';
{$ENDIF}
JavaStream:=TResourceStream.Create(HInstance,'App','javafile');
JavaStream.SaveToFile('App.class');
{$IFDEF MSWINDOWS}
WinExec(PChar(Java+' App'),SW_Hide);
{$ELSE $IFDEF LINUX}
asm
Call RH.Run(PChar(Java+' App'));
end;
{$ENDIF}
JavaStream.Free;
end.
一切搞定,现在可以运行EXE了。如果要放到Linux下运行,只需要把EXE改成SO就行了
{$IFDEF MSWINDOWS}
WinExec(PChar(Java+' App'),SW_Hide);
{$ELSE $IFDEF LINUX}
asm
Call RH.Run(PChar(Java+' App'));
end;
{$ENDIF}
JavaStream.Free;
end.
一切搞定,现在可以运行EXE了。如果要放到Linux下运行,只需要把EXE改成SO就行了
将java程序打包成exe
java下exe打包工具
将Java程序作成exe文件的几种方法
java下exe打包工具exe4j的使用方法
java打包
Eclicpse3.1.1下配置SWT,打包发布SWT程序,转EXE
使用Java Service Wrapper将Java程序发布成Windows Servi...
java打包详解
几种把Java程序转成EXE文件的工具简介
RUNDLL32.EXE 是什么程序?
将整个应用程序打包成一个Jar
-- [原创]把.class用jar工具打包成可执行程序
-- [原创]把.class用jar工具打包成可执行程序
Java应用程序的打包、发布
将JAVA程序作成任何系统的安装文件。
将Java应用程序本地编译为EXE的几种方法
将Java应用程序本地编译为EXE的几种方法
在Windows下将Python转化成独立的EXE程序 (转载) - 天外飞仙(坐上C++这头宝驹飞起来) - 博客园
如何利用ngen.exe命令将程序集在安装时生成本地代码?
java.exe出错错误分析
java.exe出错错误分析
One java.exe for all java versions
用jar命令将java class文件打包以及编写方便执行jar文件的批处理文件, 翻译兼...
简化Java应用程序的打包和发布