在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 mysqlpause;
"%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修复一下。

平台打包整合成exe安装部署(java+mysql+tomcat+war)相关推荐

  1. 平台打包整合成exe安装部署(java+mysql+jar+redis+activemq+WinSW)

    上篇文章 : https://blog.csdn.net/yueyekkx/article/details/123934814 写了war包的方式,这篇写jar包. 准备工作: 1.下载免安装的Mys ...

  2. 多个exe打包成一个exe安装程序,安装后可一键启动多个服务

    博客帮助我解决了很多问题,于是想把自己遇到的问题记录下来希望对他人有所帮助.有些帖子写得很是简单,一旦忽略了某个关键细节,就可能看不懂了,就要花费更多的时间才能解决问题或者另寻良方,所以我自己尽可能写 ...

  3. 自动化运维管理平台TASKCTL如何在Docker安装部署

    介绍: TASKCTL是一款批量调度自动化技术专业产品 制作镜像 由于在dockerhub上没有查询到有关于TASKCTL的镜像就只能自己制作了,但由于本人仅是对软进 行件部署安装,没有实际的应用场景 ...

  4. mysql tomocat vs2005_C# 制作Java +Mysql+Tomcat 环境安装程序,一键式安装

    要求: JDK.Mysql.Tomcat三者制作成一个安装包, 不能单独安装,安装过程不显示三者的界面, 安装完成要配置好JDK环境.Mysql服务.Tomcat 服务 目的: 解决客户在安装软件的复 ...

  5. 安装配置java,tomcat,eclipse

    2019独角兽企业重金招聘Python工程师标准>>> 一.下载及安装java jdk 1.java jdk 下载:http://pan.baidu.com/s/1eRf7W6Q 2 ...

  6. 在Redhat安装部署Apache+MySQL+PHP(LAMP)

    1. 安装Apache2  yum install httpd  Apache安装完成后,手动启动Apache2  /etc/init.d/httpd start  这时,直接在浏览器中输入服务器的I ...

  7. 3.5.1 安装及配置exe安装版的mysql

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RD ...

  8. tomcat部署多个项目,tomcat部署java,tomcat部署前端(亲测可用)

    1. 介绍 粗鄙的介绍:tomcat,很好用,可以跑java服务,也可以跑前端服务.但是都是要打包后的. tomcat 在linux和windows上都可以运行. 2. 下载 官网地址 :https: ...

  9. docker 发布tomcat项目_Docker部署java项目[tomcat环境]

    公司的一个java项目,然后这是组长给的一个任务,部署到docker中. 部署更不用说啦,肯定要写Dockerfile,不多想,先下载我需要的环境包. 1. JDK [JDK下载地址](Java SE ...

  10. java与tomcat,Centos上安装配置java和tomcat

    java java版本 1:配置环境变量 centos中配置环境变量稍有不同,要了解centos中如何配置环境变量首先需要理解一下几个简要的概念 * /etc/profile  和  /etc/pro ...

最新文章

  1. python cs开发框架_我的第一个python web开发框架(24)——系统重构与ORM
  2. 深入理解模板模式及实际应用
  3. 图 深度优先遍历 广度优先遍历 非递归遍历 图解算法过程
  4. hdu 2473(并查集+删除操作)
  5. 【Java代码】坐标系说明+WGS84\GCJ02\BD09坐标系转换工具+Java坐标系转换及验证源代码分享(粘贴可用)
  6. VMware View 与Citrix XenDesktop 用户体验大比拼-iPad篇
  7. 现代软件工程 作业 结对编程 模板
  8. mysql 2100,MySQL 实现准实时的表级别DML计数
  9. 16. GD32F103C8T6入门教程-adc 使用教程2-dma+连续扫描方式采集数据
  10. windows下批处理常用句法
  11. n皇后问题c语言报告,关于N皇后问题
  12. mysql视图的更新 条件_MySQL进阶16 - 视图的创建/修改/删除/更新--可更新性的不适用条件...
  13. C# 结构体转byte数组 结构体转byte[] 结构体、byte数组互转
  14. es6 对象中是否有键值_JS获取对象键值对中key值的方法
  15. 伺服舵机基础知识汇总
  16. 【BP回归预测】基于matlab鲸鱼算法优化BP神经网络回归预测(多输入单输出)【含Matlab源码 1554期】
  17. 【软件设计】CS客户端整体架构
  18. 科普篇:内存、“运行内存”、外存?傻傻分不清楚。看完这篇就懂了
  19. FPGA基础知识(FPGA芯片结构)
  20. Dell服务器如何做raid

热门文章

  1. 利用diamond进行dbcan数据库建库并进行CAZyme注释(2022.8)
  2. Hadoop上传和下载大存储的HIVE表
  3. windows自带录屏_电脑版免费的录屏软件有哪些?
  4. Python使用python-snap7实现西门子PLC通讯
  5. kaggle项目:基于随机森林模型的心脏病人预测分类
  6. python关键词共现图谱_Python简单实战项目:《冰与火之歌1-5》角色关系图谱构建——人物关系可视化...
  7. 2017 idea 代码字体加粗
  8. 【ENVI | Landsat 8】预处理—辐射校正定标
  9. Tomcat设置编码方式
  10. 乌班图运行perl脚本