可执行jar打包成exe文件(运行无须jre环境)

  可执行jar打包成exe文件,最常见的大概就是exe4j了吧。不过,现在都2020年了,这里介绍一下,使用 java8提供的 javapackager 的方式来实现。

预备工作

  首先,需要预备工作

1.java8环境

  这个就不用多说了

2.Inno Setup Compiler

  window上软件打包工具

3.wix

  打包成exe文件需要

4.示例的可执行jar

  文中给出的案例是使用Swing组件弹出一个对话框,代码很简单,就两行代码

package com.frank.test;
public class Java2exe {
    public static void main(String[] args) {
        javax.swing.JOptionPane.showMessageDialog(null, "hello java2exe");
        System.exit(0);
    }
}

  打成可执行的jar,也很简单,比如使用的是eclipse,可以:选中项目,右键,选择 Export

可执行jar打包成exe文件(运行无须jre环境)_第1张图片

  导出时的配置勾选

可执行jar打包成exe文件(运行无须jre环境)_第2张图片

开始打包

  首先进入jar所属文件夹

  比如我是放在 D:\tmp\java2exe 目录下,进来,然后,打开cmd,cmd也得进入D:\tmp\java2exe 目录。这里有个小技巧,直接在文件夹的地址栏 输入cmd,再回车,就直接进入cmd界面,并且已经进入当前路径

  再执行打包命令

javapackager -deploy -native image  -outdir outdir -outfile Java2exe -srcfiles java2exe.jar -appclass com.frank.test.Java2exe -name Java2exe

  然后,你就会看到,文件夹内多了一个 outdir 文件夹,里面有很多东西,在outdir/bundles/Java2exe目录下,有一个 Java2exe.exe 文件,它就是我们最终需要的exe可执行文件

结果验证

  双击Java2exe.exe文件测试一下

可执行jar打包成exe文件(运行无须jre环境)_第3张图片

参数详解

  好了,已经可以达到预期了。但是 打包过程中,使用到的命令,具体是什么含义呢?一个一个来解释

javapackager -deploy -native image  -outdir outdir -outfile Java2exe -srcfiles java2exe.jar -appclass com.frank.test.Java2exe -name Java2exe

  其中:

  javapackager 是java8自带的打包程序

  -deploy 表示要打包成exe或者其他平台的包

  -native image 创建原生的镜像(打成window的exe)

  -outdir outdir ,输出的目录,后面的具体目录

  -outfile Java2exe 输出的文件,后面是文件名

  -srcfiles java2exe.jar ,要打包的jar文件,后面是具体文件

  -appclass com.frank.test.Java2exe ,jar的全限定名,就是详细包名+类名

  -name Java2exe ,最终给使用者呈现的名字,就是 结果验证 过程中,双击的那个文件名

当然,还有其他的参数,比如 -description 应用的描述、-Bicon 图标等等。在cmd中,使用 javapackager 可以列举出所有的参数及其注释

用户无JRE环境,可以直接运行?

  可以的。如果要提供给用户使用,用户电脑上没有安装JRE环境,需要把 outdir 全部提供给用户,因为 outdir文件夹内,包含了JRE所需的所有文件。

你可能感兴趣的:(java基础)