使用到的工具下载地址:用nsis打jar文件为exe可执行文件的工具-Java文档类资源-CSDN下载
一、先把程序打成exe
1、准备好可执行带有man方法的jar文件;
例如:
打jar包的方法如下:
在项目上右键选择Export:
然后展开Java项,选择Runable JAR File:
然后选择主类,jar包的输出位置,依赖包的打包方式。最后点击Finish即可。
2、下载工具exe4j
解压压缩包:
安装
点击安装程序exe4j_windows-x64_5_0_1.exe
进行安装。
破解
安装成功后启动exe4j
,点击Change License
按钮,然后运行压缩包中的Keymaker.exe
生成秘钥。
粘贴秘钥到exe4j,点击OK即可。
打包jar为exe
Project type
选择JAR in EXE mode
,然后点击next
.
Application info
然后输入exe文件的简称,exe文件输出位置。然后next
Executable info
Executable type:中选择第一项GUI application,表示GUI程序,第二个选项表示控制台程序。
Executable name:中输入软件的名称(OCR)
Icon file:中选择图标的位置,图标需要实现下载好,图标不是必须的,没有也没关系。
然后展开Advanced options选择第一项Redirection
Redirection
然后勾选Redirect stderr
,显示错误输出目录,然后点next
,Service options 和Version info默认即可,所以点击next
,next
即可。
32-bit or 64-bit
然后选择Generate 64-bit executable
,生成64位的exe程序。然后next
,next
Java invocation
到了第5个配置项Java invocation
这里要把刚才生成的可执行jar包添加进来。以及所有的依赖包
,点击绿色的加号,添加可执行Jar包
导入所有的依赖包
然后在Main class:
选择主类:
JRE
选择最小支持的版本,最大的版本可以默认不写。然后展开Advanced options
,选择Search sequence
。
点击绿色的加号
然后,选择找到本地的jre:
然后把它移动到最顶端:
然后next
,
然后默认,next
:
后面一直next即可。
运行生成的exe
打开输出目录双击运行exe文件即可运行
二、在用nsis进行包装打包exe
下载nsis工具
nsis使用:
启动NSIS程序主界面,选择“可视化脚本编辑器(VNISEdit)”菜单,开始制作自己的安装包
选择“使用脚本向导创建新的脚本文件”,确定
进步脚本向导,下一步
第一步,这里填写应用程序的一些基本信息,下一步
第二步,这里是选择安装包的图标,生成的文件名,程序语言等,使用默认的就可以,不需要修改
第三步,选择一些效果,安装程序不用搞这么花哨,直接下一步
第四步,指定默认目录,授权文件有的话就指定,没有就空着,下一步
第五步,选择要打包的文件,直接把要打包的目录内容全部添加进来,注意两处*.*,以及勾选“包含子目录”,不要勾选”单独添加每个文件“,编译的时候会把所有的文件打包进来的,下一步
第六步,快捷方式的一些设置,下一步
第七步,设置安装程序之后要运行的内容,下一步
第八步,卸载信息设置,下一步
完成向导,勾选”保存脚本“,以及”转换文件路径到相对路径“,完成
这时就可以看到通过向导生成的脚本,可以在这里继续修改脚本
生成后的nsi文件
具体的nsi文件内容
; 该脚本使用 HM VNISEdit 脚本编辑器向导产生
; 安装程序初始定义常量
!define PRODUCT_NAME "huige"
!define PRODUCT_VERSION "1.0"
!define PRODUCT_PUBLISHER "huige"
!define PRODUCT_WEB_SITE "http://www.huige.com"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
SetCompressor lzma
; ------ MUI 现代界面定义 (1.67 版本以上兼容) ------
!include "MUI.nsh"
; MUI 预定义常量
!define MUI_ABORTWARNING
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
; 欢迎页面
!insertmacro MUI_PAGE_WELCOME
; 许可协议页面
!insertmacro MUI_PAGE_LICENSE "Lecense.txt"
; 安装目录选择页面
!insertmacro MUI_PAGE_DIRECTORY
; 安装过程页面
!insertmacro MUI_PAGE_INSTFILES
; 安装完成页面
!insertmacro MUI_PAGE_FINISH
; 安装卸载过程页面
!insertmacro MUI_UNPAGE_INSTFILES
; 安装界面包含的语言设置
!insertmacro MUI_LANGUAGE "SimpChinese"
; 安装预释放文件
!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
; ------ MUI 现代界面定义结束 ------
Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "huige.exe"
InstallDir "$PROGRAMFILES\huige"
ShowInstDetails show
ShowUnInstDetails show
Section "MainSection" SEC01
SetOutPath "$INSTDIR"
SetOverwrite ifnewer
File /r "*.*"
SectionEnd
Section -AdditionalIcons
CreateDirectory "$SMPROGRAMS\huige"
CreateShortCut "$SMPROGRAMS\huige\Uninstall.lnk" "$INSTDIR\uninst.exe"
SectionEnd
Section -Post
WriteUninstaller "$INSTDIR\uninst.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
SectionEnd
/******************************
* 以下是安装程序的卸载部分 *
******************************/
Section Uninstall
Delete "$INSTDIR\uninst.exe"
Delete "$SMPROGRAMS\huige\Uninstall.lnk"
RMDir "$SMPROGRAMS\huige"
RMDir /r "$INSTDIR\imag"
RMDir "$INSTDIR"
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
SetAutoClose true
SectionEnd
#-- 根据 NSIS 脚本编辑规则,所有 Function 区段必须放置在 Section 区段之后编写,以避免安装程序出现未可预知的问题。--#
Function un.onInit
MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "您确实要完全移除 $(^Name) ,及其所有的组件?" IDYES +2
Abort
FunctionEnd
Function un.onUninstSuccess
HideWindow
MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) 已成功地从您的计算机移除。"
FunctionEnd
最后生成的exe文件,双击huige.exe进行安装一路下一步即可。