如果你开发了一款web软件,然后甲方需要检查,但是甲方电脑上没有任何环境配置,然后你的项目也没有部署在云服务器上,那么怎么样能够让客户能成功运行你的程序呢。
【实现目标】
客户(甲方)机器不需要为你的软件作任何配置准备(特殊情况例外,如操作系统用户权限、开放防火墙端口等)
一体化软件包(最小集);
一键启动,一切启动;
一键停止,一切停止。
留下必要文件,其他无关的、可有可无的文件都不要。
一、制作运行包
1、为软件项目新建一个目录名(通常为项目名称),以下称“主目录”。
2、将jre、MySQL、Tomcat三套目录复制到主目录下,并创建logs目录。
3、将Tomcat/webapps目录下的无关应用程序项目删除。
4、启动MySQL,用root进入MySQL命令行,将无关数据库删除。
1)启动对应的mysqld进程
2)用root用户进入mysql命令行
。
3)用SHOW DATABASES; 查看所有创建的数据库名称。
4)用DROP DATABASE dbname; 删除不相关的数据库。
5、在logs目录中,创建应用程序日志目录。
6、记事本编辑配置文件db.properties和log4j.properties,修正日志文件输出路径为相对路径,指向软件包中的日志目录。
7、制作“启动.bat”,1预设环境变量、2启动数据库、3启动应用。
8、制作“停止.bat”,1预设环境变量、2停止应用、3停止数据库。
9、附加一份“使用说明”文件,注明软件使用方法:访问网址、初始用户名和密码等,以及其他要注意的事项。
步骤:
:首先tomcat服务器,mysql数据库,jdk放到同一目录下。
mysql直接在已安装的目录复制过来即可,注意:要把msql的data目录的项目数据库也要复制过来,然后可以修改一下mysql的连接端口号(因为防止端口3306被占用,在my.ini修改即可)
jdk也是,不用把整个已安装的jdk复制过来(太大了),只复制jre即可。
tomcat服务器就直接复制即可
复制完后,、制作“启动.bat”,注意这里的名字要和你的路径下的名称一样,
echo off
set JAVA_HOME=.\jre
set CATALINA_HOME=.\apache-tomcat-9.0.37
echo on
echo 正在启动数据库……
echo off
start .\MySQL\bin\mysqld -u root
ping 127.0.0.1
echo on
echo 正在启动应用程序……
.\apache-tomcat-9.0.37\bin\startup.bat
然后制作“停止.bat”,注意:这里我的端口号已改成3308
echo off
set JAVA_HOME=.\jre
set CATALINA_HOME=.\apache-tomcat-9.0.37
echo on
echo 正在停止应用程序……
echo off
start .\apache-tomcat-9.0.37\bin\shutdown.bat
ping 127.0.0.1
echo on
echo 正在停止数据库……
echo off
.\MySQL\bin\mysqladmin shutdown --port 3308 -uroot -ppassword
ping 127.0.0.1
echo on
echo 停止完毕……
二、验证运行包(此步骤可不用,因为这样还要还原配置,所以只要直接在电脑上双击“启动.bat”即可,启动后浏览器打开http://127.0.0.1:8080/项目名称 ,然后成功没错后,再把打完包后的文件在别的电脑上运行测试一下即可(确保别的电脑也能运行))
1、删除“我的电脑”系统环境变量中的相关项(删除之前一定要记录下它们的名称和配值),一般为JAVA_HOME、CATALINA_HOME、MYSQL_HOME等,以及PATH中的相关项,一般为java、tomcat、mysql的bin目录。(这步是为了验证用户机器的零配置环境,待软件运行包成功运行与停止之后,再还原回去)
2、停止系统当前正在运行中的有关进程,以防出现端口号冲突,一般为tomcat、mysql服务。
3、执行“启动.bat”,观察启动过程是否正常,包括数据库和应用程序,以及日志目录中是否有生成相关文件。
4、进入软件运行界面,作一些常规操作,验证软件的可用性。
5、执行“停止.bat”,观察数据库和应用程序是否已经真正从进程列表中退出。
三、还原“我的电脑”系统环境变量。
四、用户机验证,将主目录打包,另找一台机解包,然后验证软件包的可用性,如果一切正常,则软件运行包制作成功。
五、后期的软件更新,一般涉及到两部分:一是数据库脚本,通过CMD窗口进入MYSQL命令行执行更新;二是程序文件更新,更新覆盖Tomcat/webapps/项目目录中的相关文件。