java + swing turn packaged into exe jar and then packaged into dynamic binding installation file jre

java package into exe jar and then packaged into dynamic binding installation file jre

Note: the premise that all of the steps that the jar file, ico icon (pngImage folder), third-party jar package (lib Binder), jre Binder, into the same Binder.

In the present embodiment exe4j Install4j Inno setup the binder as 0

Figure 0

First, we chose to turn exe4j jar files into exe files execute

exe4j.exe Download: http://www.ej-technologies.com/download/exe4j/files.html

Installation not go into details:

It requires a system with more than JDK version 1.5, point Download online download, if you have JDK on your machine, point Locate found /bin/java.exe under JDK directory you installed on the machine can be installed.

Here exe4j use to convert jar exe process is elaborate:

Step 1, default. Direct the next step

Step 2, if there is already making a good jar file, then following a "JAR in EXE".

For packaged jar file, right-click the project in eclipse you can choose to export, not making jar files can give me a message

Figure 1

Step 3, the above is the project name, you can easily fill, a exe file to write the following output directory you want to pack after:

2

Step 4, because of my presentation is graphical, so choose the first one, if your program is the console, then select the second, Executable name write the name of your exe file to be generated, Icon File can choose generating a file icon

Figure 3

Step 5, first, click the green "+" sign in the window that pops up midpoint Archive, and then locate the beginning has already done the jar file, as shown after 4, "OK" to return in the following Class Path Lane after the jar file path appears, then click on it to find the Main class column where the main class, shown in Figure 5, this step is considered complete:

Figure 4

Figure 5

第6步,一般的应该程序都要带第三方jar檔,同步骤5一样即可,结果如图6.

如图6

第7步,你系统的JRE版本,上面填个1.5,下面不填也行,如图7:

如图7

当然,这样配置的程序只能在安装有JRE的机器上执行,发布时总要考虑的问题就是用户是否有能力在自己机器上安装JRE,总不能发布一个程序还要用户自己安装个JRE吧,下面我就介绍如何将JDK环境变量动态打包到exe中,在这里单击advanced options(图7中有,如图8),选择search sequence。如图:

如图8

在弹出的窗口中,删除列表中所有项,然后单击绿+,选择directory并选择JRE的根目录(注意是拷贝后的目录)即可,(此步注意,选到jre6檔夹即可),如图9

如图9

 

点打开,结果如图10

如图10

单击ok后,再从图中单击advanced options,并选择preferred VM,在弹出的窗口中选择client hostspot VM(如图11),单击next按钮继续:

如图11

第8步:配置splash screen即exe运行时的过渡接口图,设置如图12

如图12

第9步,直接下一步即可,设置如图13

如图13

第10步,编辑完成

点击即可生成exe檔(注意输出目标文件夹中不要有相同的目标exe文件)

注:exe4j未注册的版本可以在网上随便找个激活码。

java.exe依照一套逻辑来寻找可以用的JRE,首先查找自己所在的目录下有没有JRE,其次查找自己的父目录下有没有JRE;最后才是查询Windows的注册表。

 

现在我们的程序可以在任意的计算机上执行了,可是缺点是致命的,比方说我的程序才160K,可是不论走到哪里都要背着70多M的JRE,未免有点小题大做吧,其实作为我们的私有的JRE,好多内容都是可以抛弃的。Jre目录下的license都可以不要,bin下的执行档只需要保留java.exe或者javaw.exe,lib下只要保留rt,jsse,jce,charsets几个库就可以了。除了i386和zi两个子目录外,其余的子目录都可以不要。Zi下只需要保留自己地区的子目录和其下的一些檔就可以。Lib下除了库之外的属性文件等等都要保留。这样清理一番,JRE仍然有接近50MB。还可以继续清理几个库檔里面不需要的内容,这需要仔细的整理,会很费功夫。最好能写出一个自动工具帮助我们整理它们。从Sun公司上下到的JMF里面附带的用Java写的媒体播放器就自带了JRE,只有几个MB。

清理过后需要运行几遍我们的应用程序,以确保我们的JRE不缺少东西。

另外,精简jre的方法网上很多,下面找了一个,大家可以参考。(此处转载的)

整个HtmlFrame2\jre6未压缩前,大约是100M左右,如果把它也放进安排包,那么整个安排包的体积将会很惊人,下面对jre进行精简。

进入jre6目录,jre6目录内,除了bin和lib两个文件夹外,其它所有文件都可以删除;

进入jre6\bin,随便删除一个文件,双击HtmlFrame.exe,如果能运行,那么这个文件就是可以删除的,如果不能运行,就把这个文件还原回去。通过这个方法清理后bin和lib里面的文件,体积大概能减一半。

进入jre6\lib,你会发现rt.jar这个文件,大概40M,这是Java基础类库文件,里面有几千个.class类文件,但其实许多.class在程序里并未使用。先用WinRar解压rt.jar,随便删除rt文件夹里面的文件,再用WinRar把rt文件夹内的其它文件压缩成一个zip格式文件,把zip后缀改成jar,放回jre6\lib中,双击HtmlFrame.exe,如果能运行,则是可以删除,不能运行,就把类还原回去,再重复上边的操作。这个方法精简jre会比较累,不过这是我目前找到的最有用方法了。

关于精简rt.jar的方法,网上也有一些工具如:GreenJVM等,可以直接精简rt.jar,可以把rt.jar体积减少到3M左右。不过本人用这些工具精简出来rt.jar未试过可以运行,估计是漏掉一些class。

另外可以在dos下使用命令:

java -jar -verbose:class HtmlFrame.jar >>class.txt  把用到的class输出一个txt文件中,再对比进行删除。

网上也有人提供一些精简过的jre,需要的,可以自己上网找下。

 

其次:用Inno Setup把exe文件和jre打包成安装文件(此处转载的)

一.使用inno setup把整个HtmlFrame程序制作成setup.exe安排包。inno setup是一个免费的、使用非常简单的安排包制作工具,本篇文章使用的是inno setup简体中文版本。有兴趣的,也可以使用其它安装包制作工具。随便提一下另一个专门针对java程序的安装包工具install4j,假如在步骤2中没有给程序指定jre,install4j可以为程序绑定一个jre到安排包中。
本篇使用的inno setup简体中文版本。启动inno setup,选择文件→新建,
1步,inno setup的脚本欢迎向导


2步,配置应用程序基本信息


3步,应用程序文件夹信息


4步,选择应用程序文件,主执行文件选择HtmlFrame.exe;其它应用文件需要把这个程序的相关资源文件和jre也添加进去,我这里所有相关的文件都放进HtmlFrame2文件夹内,因些直接添加文件夹选择HtmlFrame2,"其它应用程序文件"列表内所有的文件都将会被打包到setup.exe文件内。




5,设置应用程序图标


6步,设置安装期间相关的显示文件


7步,安装语言


8步,编译输出文件名指安装包的文件名,如输入setup,生成的安装包将为setup.exe;编译输出文件夹指生成的安装包setup.exe的路径;安装程序图标文件指安装包setup.exe的文件图标;


之后的直接点下一步,在出现立即编译新的脚本提示时,点击确定进行编译。


编译完成后将会在编译输出文件夹生成一个setup.exe文件。


整个安排包的制作过程到此已经完成,现在可以把setup.exe发给其它人安装使用

注意设置:以管理员身份或非管理员身份启动设置

添加管理员权限

1、在[Setup]节点添加 PrivilegesRequired=admin

2、进入安装目录,找到文件SetupLdr.e32,这是一个二进制配置文件,需要用到ResHacker.exe这个工具修改

   找到<requestedExecutionLevel level="asInvoker" uiAccess="false"/></requestedPrivileges>,

     修改为<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/></requestedPrivileges>

 

删除管理员权限

1、在[Setup]节点添加 PrivilegesRequired=none 或者 PrivilegesRequired=lowest

2、在[Setup]节点修改 DefaultDirName(安装路径)的值,默认可能是DefaultDirName={pf}\{#MyAppName},

  不要带{pf}, {win}, {sys}这些变量值,比如设置成DefaultDirName={localappdata}\{#MyAppName}

发布了44 篇原创文章 · 获赞 27 · 访问量 19万+

Guess you like

Origin blog.csdn.net/m0_38031406/article/details/103944295