
前言
(我的这个方法有些繁杂啊,但绝对够详细,知道更简便的方法的大佬跪求留言分享)٩(๑❛ᴗ❛๑)۶
Java程序要打包成桌面应用程序,主要分为以下三个步骤:
- 一. 先将Java程序导出为可运行的jar包.
- 二. 用exe4j工具,将导出的jar包转成可直接运行的.exe文件(注:此时的.exe文件是需要依赖jdk中的jre文件才能运行的).
- 三. 使用 inno setup 工具将上一步的.exe和jre文件封装成可独立安装使用的桌面应用软件(发给任何人都可以安装使用啦.)
用到的 exe4j 和 inno setup 两个小工具可以去百度搜索它们的官网下载,也可以在我的公众号 编程之外 回复 java打包工具 获取我下载好的安装包,占用的空间也很小的,自己安装一下就好啦!
准备工作
为了后面步骤讲解的方便,我们先在桌面新建一个文件夹,这里文件夹我命名为Java,需要一张.ico格式的图片用来做软件的图标(没有也可以不用,就是一会打包成的软件会比较丑,善良的博主我(想打我的同学忍住(´▽`)ノ )提供一个图片在线转换为ico格式的网站,只三步就可完成制作,网站页面如下:http://www.bitbug.net/)
Java程序导出为可运行的jar包
准备主清单文件 “MANIFEST.MF”(注:自己的Java程序中没有引用到第三方jar包的话,这步可直接跳过)
程序中引用了第三方jar包的Java项目,打包时需要自定义一个配置文件MANIFEST.MF,在该项目下建立文件MANIFEST.MF,文件内容如下:
Manifest-Version: 1.0
Class-Path: lib/commons-codec.jar lib/commons-httpclient-3.1.jar lib/commons-logging-1.1.jar lib/log4j-1.2.16.jar lib/jackson-all-1.8.5.jar
Main-Class: main.KillCheatFans
说明: Manifest-Version: 1.0是MAINIFEST的版本,Class-Path:指定了我们引用的第三方jar包的位置,第三行指定我们要执行的MAIN java文件。另外,这里还需要注意以下四点:
- Class-Path: 和Main-Class: 后边都有一个空格,一定要加上,否则会打包失败,错误提示为:Invalid header field;
- 假设我们的项目打包后为test.jar,按照MANIFEST.MF文件的定义,则应该在 test.jar的同层目录下建立一个lib文件夹,并将相关的jar包放在里面。否则将会出现“Exception in thread “main” java.lang.NoClassDefFoundError”的错误;
- Main-Class后面是类的全地址,如果你的主文件是test.java,文件里打包为package com.main; 那么这里就写com.main.test,不要加.java后缀,主文件地址写错将会出现“找不到或无法加载主类”的错误;
- 写完Main-Class后一定要回车(即最后一行是空白行),让光标到下一行,这样你生成的jar包才能找到你的主class去运行,否则将会出现“jar中没有主清单属性”的错误;
在eclipse中(myeclipse也类似)选中要导出的 java程序或整个项目或包 都可以,此处我以我的JavaFTP项目下的sonyi.server包演示,右击在弹出的窗口中选择Export(导出)
选择导出类型JAR file --下一步
取消勾选“.classpath”和“.project”,选择导出到的文件夹,点击“Next”
保持默认,点击“Next”
选择项目中程序运行的main方法所在的类文件,点击Finish(完成)(如有警告,不用理会点击ok)
如下图此时桌面的Java文件夹下已经生成.jar文件,并且双击可运行了(有的同学的eclipse会受jdk版本的影响,导出的jar文件运行不了,会提示找不到主类,没关系它不影响我们后面的步骤罒ω罒)
用exe4j工具将jar包转成.exe文件
注: 该步骤得到的.exe文件,是要依赖jdk目录下的jre文件才能运行使用的,所以要先去你自己jdk的安装目录下,把整个jre文件复制到桌面的Java文件夹中,后面步骤会用到。
打开exe4j工具,直接点击Next(下一步)
选择“JAR in EXE mode”,点击“Next”
名称随便填,选择.exe生成的目录,点击“Next”
为生成的.exe取名,如果想生成自定义图标的.exe,那么选择你的ico文件(必须要有.ico格式的图片,没有则不√选这项),如果你不想在一台电脑上运行多个你的程序,你可以勾选“Allow only a single…”.
勾选,Next
保持默认,Next
点击绿色加号添加前面导出的.jar文件,OK
选择Main class ,Next
输入一个Java最小Jre版本号,即低于这个版本的jre无法运行该程序,选择Advanced Options–Search sequence来添加运行.exe的jre环境
点击绿色加号,添加本地运行环境,即刚刚复制到Java中的jre整个文件 Next
保持默认,点击“Next”
两个默认,“Next”
此时已生成可运行的.exe文件了(电脑装有360或管家的可能会弹窗提示有木马.exe文件生成,不用担心这就是我们自己生成的,需要信任并找回.exe文件)可以关闭exe4j软件了
将.exe文件封装成可独立安装使用的桌面应用软件
打开inno setup软件,选择我标红的东西(博主拼音6级伤残有点懒得打字了,看图吧)
Next
设置软件的名称,版本
Next
添加执行主程序,即Java文件夹中的.exe,添加依赖文件即Java文件夹中的jre文件,Next
保持默认,三个Next
选择安装语言,可多选,我是保持默认即English
选择软件安装包生成位置及文件名,添加图标ico文件,设置安装密码(可不设置)
Next
Finish
第一个窗口选 是,第二个选 否,等待一下
已生成软件安装包,可双击安装使用了,我也终于写完了😪😪
编程之外
这个方法真的是又臭又长,没点耐心估计做到第三大块就去了,奈何我只会这种方法,有其它方法打包的一定要在评论区留下你的jio印,必须留下你的jio敢.
欢迎小伙伴入坑公众号 编程之外,学习更多的编程知识,寻找编程之外的乐趣,互相监督一起成长😁😁
Java全栈学习路线已在公众号的【更多】发布,感谢你对编程之外的支持,学习Java的小伙伴可在公众号回复 pdf,获取Java学习和面试资料!
编程之外 |