在windows的环境上做一键部署启动java项目!
准备工作:
1、下载免安装的Mysql5.7、Tomcat6.0、JDK1.7
(根据电脑系统类型选择对应的位数,根据项目选择版本!大同小异)
2、下载Inno Setup打包工具(http://www.jrsoftware.org/isdl.php)
3、测试用的虚拟机,Windows Server 2012 R2系统
开始:
1、文件放置
建立一个文件夹,把解压文件全部放到该目录下:
在这里插入图片描述
java JDK放到了tomcat里边(后来知道了,位置不重要,bat文件中管理好路径即可,不想改了。jdk下不到免安装版可以直接复制安装的)
在这里插入图片描述
war包放到tomcat\webapps下(测试时建议先不要放,环境没问题了再放)
在这里插入图片描述
2、配置mysql
mysql解压后建立my.ini文件和data文件夹(文件夹不要放东西,否则注册服务会有问题:initialize specified but the data directory has files in it. Aborting.idata目录下有文件了,所以格式化失败),放在mysql根目录下

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=C:\guncab\mysql-5.7.28-winx64
# 设置mysql数据库的数据的存放目录
datadir=C:\guncab\mysql-5.7.28-winx64\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
# sql-mode
sql-mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
# skip-grant-tables
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8

在bin文件下建立mysql_init.bat文件。
在这里插入图片描述
mysql_init.bat内容如下:
首先是注册服务,然后启动服务,修改密码,创建数据库,导入文件。

cd /d %~dp0 
"%cd%\mysqld.exe" --initialize-insecure --user=mysql --console
echo -----mysql init succee-----

mysqld install mysql 
echo -----mysql service install succee-----

net start mysql

pause;
"%cd%\mysqladmin" -u root password 123456
echo 修改密码完毕 

cd .. 
"%cd%\bin\mysql.exe" -uroot -p123456 < "%cd%\changePsd.sql" 

"%cd%\bin\mysql.exe" -uroot -p123456 < "%cd%\create.sql" 

"%cd%\bin\mysql.exe" -uroot -p123456 guncab< "%cd%\guncab.sql" 
echo 创建数据库完成,建表完毕 
exit

changePsd.sql,create.sql,guncab.sql(项目数据库文件)位置如下:
在这里插入图片描述

changePsd.sql内容如下:

use mysql;
select 'host' from user where user='root';
update user set host = '%' where user ='root';
flush privileges;
select 'host'   from user where user='root';
ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;

create.sql内容如下:创建guncab数据库。

CREATE DATABASE guncab;

“%cd%\bin\mysql.exe” -uroot -p123456 guncab< “%cd%\guncab.sql”
数据库的名称,根据自己数据库的名称进行修改。

3、配置JDK环境变量
在tomcat根目录下,建立set_env.bat文件,目的是配置java环境变量。
在这里插入图片描述
set_env.bat文件内容:

@echo off 
echo
cd ..
echo  "%~dp0"
echo "%cd%"
set jdkpath=%cd%\apache-tomcat-6.0.53\bin\java\jdk1.7.0_80
echo %jdkpath%
setx JAVA_HOME  "%jdkpath%"  -m
setx CLASSPATH  ".;%%JAVA_HOME%%\lib\tools.jar;%%JAVA_HOME%%\lib\dt.jar" -m
echo %Path%
echo %Path%|find /i "%java_home%" && set IsNull=true || set IsNull=false
echo %IsNull%
if not %IsNull%==true (
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_SZ /d "%Path%;%%JAVA_HOME%%\bin;%%JAVA_HOME%%\jre\bin" /f
setx Path "%%JAVA_HOME%%\bin;%Path%"
)
exit

4.配置Tomcat
tomcat/bin目录下建立tomcat_start.bat文件。
在这里插入图片描述
tomcat_start.bat文件内容:

echo -------tomcat begin--------
call "%~dp0%service.bat" install tomcat6
echo -------tomcat install end------------------
sc config tomcat6 start= auto
net start tomcat6
rem 下面两句是设置到服务里自动启动的
wmic service where name="tomcat6" changestartmode "automatic"
wmic service where name="tomcat6" startservice
exit

在这里有一个坑,先写一下,如果不修改service.bat,最后打包成的exe文件安装后,net start tomcat6 这部启动不起来,查找了好多资料,个人认为其实就是java环境配置了但未生效导致,所以要在service.bat中@echo off后添加下边代码。

setlocal
rem 添加java路径,第一次启动服务就可以了
set LOCA_LHOME=%~dp0
set JAVA_HOME=%LOCA_LHOME%java\jdk1.7.0_80
set JRE_HOME=%LOCA_LHOME%java\jdk1.7.0_80\jre

5.配置Inno setup

Inno setup软件具体使用,自行琢磨。准备一个guncab.ico文件,作为生成exe的图标。[Run]下边的按顺序执行,我的配置:

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "项目名称"        
#define MyAppVersion "版本号"           
#define MyAppPublisher "公司名"
#define MyAppURL "公司网址"
 
; 基本配置
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
; 单独标识,可以通过 工具自动生成    点击工具--- 生成GUID
AppId={{CA54341C-6F6A-4C4F-BB9B-EFA6C8786387}}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
; 默认安装路径
DefaultDirName=C:\guncab
DefaultGroupName={#MyAppName}
; 软件名称
OutputBaseFilename=guncab
; 软件图标
SetupIconFile=C:\guncab\guncab.ico 
; 压缩方式  
Compression=lzma
; yes 可以使文件更小
SolidCompression=yes
; 必需有管理员权限才能安装
PrivilegesRequired=admin
; 安装密码
;Password=itdragon
; 开启加密,可能还需要一个dll文件
;Encryption=yes
 
; 语言配置 
[Languages]
Name: "chinesesimp"; MessagesFile: "compiler:Default.isl"
 
; 安装文件
[Files]
; 安装部署的源文件路径(一种全部,一种分开)
; Source: "C:\guncab\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
;拷贝tomcat
Source:"C:\guncab\apache-tomcat-6.0.53\*";DestDir:"{app}\apache-tomcat-6.0.53";Flags:igNoreversion recursesubdirs createallsubdirs
;拷贝mysql
Source:"C:\guncab\mysql-5.7.28-winx64\*";DestDir:"{app}\mysql-5.7.28-winx64";Flags:igNoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
 
; 快捷键
[Icons]
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}" 
Name: "{commondesktop}\系统名称"; Filename: http://localhost:8080/guncab/
;Name: "{commondesktop}\启动服务"; Filename: "{app}\apache-tomcat-6.0.53\bin\startup.bat"

[INI]
;修改数据库配置文件
Filename:"{app}\mysql-5.7.28-winx64\my.ini";Section:"mysqld";Key:"basedir"; String:"{app}\mysql-5.7.28-winx64"
Filename:"{app}\mysql-5.7.28-winx64\my.ini";Section:"mysqld";Key:"datadir"; String:"{app}\mysql-5.7.28-winx64\data"
Filename:"{app}\mysql-5.7.28-winx64\my.ini";Section:"mysqld";Key:"port"; String:"3306"
Filename:"{app}\mysql-5.7.28-winx64\my.ini";Section:"client";Key:"port"; String:"3306"


 
; 程序安装成功后执行以下服务脚本
[Run]     
Filename: "{app}\apache-tomcat-6.0.53\set_env.bat"; 
Filename: "{app}\mysql-5.7.28-winx64\bin\mysql_init.bat";
Filename: "{app}\apache-tomcat-6.0.53\bin\tomcat_start.bat"; 

 ; 指定在卸载第一步要执行以下服务脚本
[UninstallRun]
Filename: "{app}\mysql-5.7.28-winx64\bin\mysql_delete.bat";

[UninstallDelete]
Type:filesandordirs;Name:"{app}\apache-tomcat-6.0.53"
Type:filesandordirs;Name:"{app}\mysql-5.7.28-winx64"

修改好guncab.iss文件,执行编译,没问题后就会输出Output文件夹,内含exe文件。
在这里插入图片描述
此处再说一下,[UninstallRun],建立mysql_delete.bat文件,卸载软件会执行此文件。
mysql_delete.bat放在mysql-5.7.28-winx64\bin目录下,内容如下,

@echo off
title 软件正在卸载中,请不要关闭
color 0a
echo 停止并删除应用服务
net stop Tomcat6
sc delete Tomcat6
echo 停止并删除数据库
net stop MySQL
sc delete MySQL
echo 删除环境变量
wmic ENVIRONMENT where "name='CLASSPATH'" delete
wmic ENVIRONMENT where "name='JAVA_HOME'" delete
echo 删除完成

另外:新安装系统可能会缺少文件,vc++环境,建议先用DirectXRepair修复一下。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐