文章目录
背景
有时候我们再给一台什么都没有安装的windows系统上需要运行java web的项目,可能我们要做的就是在这个windows系统上再安装java、mysql、tomcat、然后再新建数据库,导入数据等等操作,如果对于非开发人员,这将会耗时,最后可能也会无法顺利运行起来。
这里介绍一种方法,就是开发人员直接配置完,可以直接拷贝给非开发人员,他们可以直接双击运行起来。
正文
1 准备相关软件
- java
- mysql
- tomcat
首先,我们需要在本机上安装好java、mysql,以作者自己的本机为例:
本机上,安装的软件及路径如下:
java
路径为D:\Program Files\Java\jdk1.8.0_20
mysql
这里下载的是压缩的版本mysql-5.7.21-winx64.zip
,然后用解压并进行安装,安装步骤可查看地址:https://blog.youkuaiyun.com/lianjie_c/article/details/102698686tomcat
直接下载压缩版即可,这里采用的是apache-tomcat-8.5.34-windows-x64.zip
2 配置
新建一个文件夹,这里将这个文件夹命名为myserver
在myserver目录下新建app
文件夹,用于存放项目。
这里用一个简单的项目helloworld
2.1 jdk
将D:\Program Files\Java\jdk1.8.0_20
复制到myserver
的文件夹中
2.2 mysql
将mysql复制到myserver
的文件夹中,笔者是通过上述来安装mysql的,所以这里采用的是将mysql的主目录即E:\mysql-5.7.21-winx64
复制到myserver
文件夹中。
2.2.1 修改配置
修改myserver\mysql-5.7.21-winx64\my.ini
文件内容:
[mysql]
default-character-set=utf8
[mysqld]
port=3307
basedir=../
#basedir=E:\mysql-5.7.21-winx64
datadir=../data
#datadir=E:\mysql-5.7.21-winx64\data
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB
如上配置,修改的内容为:
basedir
的值修改成../
,代表当前路径的上一级路径。如这里my.ini的路径是C:\Users\lianj\Desktop\myserver\mysql-5.7.21-winx64\my.ini
,则../
代表的是C:\Users\lianj\Desktop\myserver\mysql-5.7.21-winx64
datadir
的值修改成../data
,代表当前路径的上一级路径下的data目录。如这里my.ini的路径是C:\Users\lianj\Desktop\myserver\mysql-5.7.21-winx64\my.ini
,则../data
代表的是C:\Users\lianj\Desktop\myserver\mysql-5.7.21-winx64\data
2.2.2 启动mysql创建数据库导入数据
打开cmd命令窗口,然后使用cd
命令切换到myserver目录,然后再进入mysql下的bin目录
使用以下命令启动mysql
mysqld.exe --defaults-file=../my.ini --console
启动完成后,再打开新的cmd命令窗口,同样先切换到mysql下的bin目录,然后使用root登录,命令如下
mysql.exe -uroot -proot -P3307
其中:
-uroot
中的root为用户名
-proot
中的root为密码
-P3307
中的3307为mysql端口
用户通过命令行进入到mysql后,可用命令来创建数据库,并导入sql文件,这里不做详细说明,具体可搜索查看mysql的命令操作
2.3 tomcat
将apache-tomcat-8.5.34-windows-x64.zip
解压到myserver
目录中,得到myserver\apache-tomcat-8.5.34
2.3.1 server.xml
修改tomcat的配置文件myserver\apache-tomcat-8.5.34\conf\server.xml
server.xml的部分内容如下:
<!--如果8005端口被占用,则需要将8005修改成其他-->
<Server port="8005" shutdown="SHUTDOWN">
<!--如果8080端口被占用,则需要将8080修改成其他-->
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<!-- Define an AJP 1.3 Connector on port 8009 -->
<!--以下用AJP协议的时候才用到,没用的话可直接注释掉-->
<!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> -->
<!--省略不显示-->
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
<Context path="/helloworld" docBase="../../app/helloworld" />
</Host>
</Server>
以上主要是在Host
节点中添加了<Context path="/helloworld" docBase="../../app/helloword" />
,如果有端口被占用,需要在配置文件中做相应修改。
2.3.2 catalina.bat
修改myserver\apache-tomcat-8.5.34\bin\catalina.bat
。
catalina.bat的部分内容如下:
rem Example (all one line)
rem set TITLE=Tomcat.Cluster#1.Server#1 [%DATE% %TIME%]
rem ---------------------------------------------------------------------------
set JAVA_HOME=../../jdk1.8.0_20
setlocal
以上主要添加了set JAVA_HOME=../../jdk1.8.0_20
用于设置JAVA_HOME
2.4 start.bat
在myserver
的目录下创建start.bat
批处理文件,具体内容如下:
@echo off
echo 关闭端口3307
for /f "tokens=5" %%i in ('netstat -aon ^| findstr ":3307"') do (
echo %%i
if not "%%i"=="" (
taskkill /f /pid %%i
)
)
cd mysql-5.7.21-winx64
cd bin
echo 启动mysql
start mysqld.exe --defaults-file=../my.ini &
cd ..
cd ..
REM set JAVA_HOME=jdk1.8.0_20
REM echo %PATH%
echo 启动tomcat
cd apache-tomcat-8.5.34
cd bin
call startup.bat
echo 5秒后自动关闭窗口
ping 127.1 -n 5 >nul
对以上内容大概解释下:
for /f "tokens=5" %%i in ('netstat -aon ^| findstr ":3307"') do (
echo %%i
if not "%%i"=="" (
taskkill /f /pid %%i
)
)
以上内容主要是为了查找占用3307端口的进程,然后杀死这个进程。由于mysql占用了3307端口,防止端口被占用而无法启动mysql,如果mysql不是3307的端口,那么将以上的3307改成实际的mysql端口。
剩下的应该可以看得懂,这里就不做解释了。
3 启动
双击start.bat
即可启动,然后在浏览器上输入地址:http://localhost:8080/helloworld
即可访问
这样如果需要在其他机子上运行的话,直接把myserver
整个配置好的环境拷贝过去即可