一、Java 运行环境的搭建
从网上搜索 “jdk”,从官网上下载最新版本的 Linux 的 jre 的二进制包,解压就能用的。不用多说,自己查百度就能知道了。提取出来的 jre 文件夹建议放在 /etc/ 文件夹下面,/etc/ 是许多 Linux 下的软件包部署的环境。下面就是关键的搭建关键变量。
配置系统环境变量,编辑 /etc/profile 文件,在文件的末尾添加一下信息:
export JAVA_HOME=/etc/jdk-8
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
解释一下,上面几行代码:
export JAVA_HOME=/etc/jdk-8 是配置jdk的主目录
export JRE_HOME=$JAVA_HOME/jre 是配置jre的目录
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib 是配置的CLASSPATH目录
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin 将jdk的可执行文件目录添加到系统系统环境目录中
如下图所示:
在命令窗口中执行下面的命令,使得编辑生效:
source /etc/profile
在 terminal 中验证一下环境是否成功:
二、部署 Maven
在 /etc/profile 下添加环境变量
# Maven_Home
export M2_HOME=/etc/apache-maven-3.5.0
export PATH=$M2_HOME/bin:$PATH
重新启动系统,或者在终端下输入,使得刚才的编辑生效:
source /etc/profile
验证环境变量是否存在:
echo $M2_HOME
echo $PATH
验证 Maven 配置是否成功:
不修改配置的话,下载的文件都会保存到本地仓库~/.m2/repositoryMaven 中。也可以自己指定代码的仓库。
另外,国内下载最好指定阿里云的 Maven 仓库。
在 maven 的 settings.xml 文件里配置 mirrors 的子节点,添加如下 mirror。
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
三、Tomcat 环境的搭建
将解压的文件夹部署到 /etc/ 文件夹下,在 tomcat 的文件夹下面的 RUNNING.txt 文件里面讲解了部署的流程。
Apache Tomcat 7.0 requires a Java Standard Edition Runtime
Environment (JRE) version 6 or later.
=============================
Running With JRE 6 Or Later
=============================
(1) Download and Install a Java SE Runtime Environment (JRE)
(1.1) Download a Java SE Runtime Environment (JRE),
release version 6 or later, from
http://www.oracle.com/technetwork/java/javase/downloads/index.html
(1.2) Install the JRE according to the instructions included with the
release.
You may also use a full Java Development Kit (JDK) rather than just
a JRE.
(2) Download and Install Apache Tomcat
(2.1) Download a binary distribution of Tomcat from:
http://tomcat.apache.org/
(2.2) Unpack the binary distribution so that it resides in its own
directory (conventionally named "apache-tomcat-[version]").
For the purposes of the remainder of this document, the name
"CATALINA_HOME" is used to refer to the full pathname of that
directory.
NOTE: As an alternative to downloading a binary distribution, you can
create your own from the Tomcat source code, as described in
"BUILDING.txt". You can either
a) Do the full "release" build and find the created distribution in the
"output/release" directory and then proceed with unpacking as above, or
b) Do a simple build and use the "output/build" directory as
"CATALINA_HOME". Be warned that there are some differences between the
contents of the "output/build" directory and a full "release"
distribution.
(3) Configure Environment Variables
Tomcat is a Java application and does not use environment variables directly.
Environment variables are used by the Tomcat startup scripts. The scripts use
the environment variables to prepare the command that starts Tomcat.
(3.1) Set CATALINA_HOME (required) and CATALINA_BASE (optional)
The CATALINA_HOME environment variable should be set to the location of the
root directory of the "binary" distribution of Tomcat.
The Tomcat startup scripts have some logic to set this variable
automatically if it is absent, based on the location of the startup script
in *nix and on the current directory in Windows. That logic might not work
in all circumstances, so setting the variable explicitly is recommended.
The CATALINA_BASE environment variable specifies location of the root
directory of the "active configuration" of Tomcat. It is optional. It
defaults to be equal to CATALINA_HOME.
Using distinct values for the CATALINA_HOME and CATALINA_BASE variables is
recommended to simplify further upgrades and maintenance. It is documented
in the "Multiple Tomcat Instances" section below.
(3.2) Set JRE_HOME or JAVA_HOME (required)
These variables are used to specify location of a Java Runtime
Environment or of a Java Development Kit that is used to start Tomcat.
The JRE_HOME variable is used to specify location of a JRE. The JAVA_HOME
variable is used to specify location of a JDK.
Using JAVA_HOME provides access to certain additional startup options that
are not allowed when JRE_HOME is used.
If both JRE_HOME and JAVA_HOME are specified, JRE_HOME is used.
The recommended place to specify these variables is a "setenv" script. See
below.
(3.3) Other variables (optional)
Other environment variables exist, besides the four described above.
See the comments at the top of catalina.bat or catalina.sh scripts for
the list and a description of each of them.
One frequently used variable is CATALINA_OPTS. It allows specification of
additional options for the java command that starts Tomcat.
See the Java documentation for the options that affect the Java Runtime
Environment.
See the "System Properties" page in the Tomcat Configuration Reference for
the system properties that are specific to Tomcat.
A similar variable is JAVA_OPTS. It is used less frequently. It allows
specification of options that are used both to start and to stop Tomcat as well
as for other commands.
Note: Do not use JAVA_OPTS to specify memory limits. You do not need much
memory for a small process that is used to stop Tomcat. Those settings
belong to CATALINA_OPTS.
Another frequently used variable is CATALINA_PID (on *nix only). It
specifies the location of the file where process id of the forked Tomcat
java process will be written. This setting is optional. It will enable the
following features:
* better protection against duplicate start attempts and
* allows forceful termination of Tomcat process when it does not react to
the standard shutdown command.
(3.4) Using the "setenv" script (optional, recommended)
Apart from CATALINA_HOME and CATALINA_BASE, all environment variables can
be specified in the "setenv" script. The script is placed either into
CATALINA_BASE/bin or into CATALINA_HOME/bin directory and is named
setenv.bat (on Windows) or setenv.sh (on *nix). The file has to be
readable.
By default the setenv script file is absent. If the script file is present
both in CATALINA_BASE and in CATALINA_HOME, the one in CATALINA_BASE is
preferred.
For example, to configure the JRE_HOME and CATALINA_PID variables you can
create the following script file:
On Windows, %CATALINA_BASE%\bin\setenv.bat:
set "JRE_HOME=%ProgramFiles%\Java\jre6"
exit /b 0
On *nix, $CATALINA_BASE/bin/setenv.sh:
JRE_HOME=/usr/java/latest
CATALINA_PID="$CATALINA_BASE/tomcat.pid"
The CATALINA_HOME and CATALINA_BASE variables cannot be configured in the
setenv script, because they are used to locate that file.
All the environment variables described here and the "setenv" script are
used only if you use the standard scripts to launch Tomcat. For example, if
you have installed Tomcat as a service on Windows, the service wrapper
launches Java directly and does not use the script files.
(4) Start Up Tomcat
(4.1) Tomcat can be started by executing one of the following commands:
On Windows:
%CATALINA_HOME%\bin\startup.bat
or
%CATALINA_HOME%\bin\catalina.bat start
On *nix:
$CATALINA_HOME/bin/startup.sh
or
$CATALINA_HOME/bin/catalina.sh start
(4.2) After startup, the default web applications included with Tomcat will be
available by visiting:
http://localhost:8080/
(4.3) Further information about configuring and running Tomcat can be found in
the documentation included here, as well as on the Tomcat web site:
http://tomcat.apache.org/
(5) Shut Down Tomcat
(5.1) Tomcat can be shut down by executing one of the following commands:
On Windows:
%CATALINA_HOME%\bin\shutdown.bat
or
%CATALINA_HOME%\bin\catalina.bat stop
On *nix:
$CATALINA_HOME/bin/shutdown.sh
or
$CATALINA_HOME/bin/catalina.sh stop
==================================================
Advanced Configuration - Multiple Tomcat Instances
==================================================
In many circumstances, it is desirable to have a single copy of a Tomcat
binary distribution shared among multiple users on the same server. To make
this possible, you can set the CATALINA_BASE environment variable to the
directory that contains the files for your 'personal' Tomcat instance.
When running with a separate CATALINA_HOME and CATALINA_BASE, the files
and directories are split as following:
In CATALINA_BASE:
* bin - Only the following files:
* setenv.sh (*nix) or setenv.bat (Windows),
* tomcat-juli.jar
The setenv scripts were described above. The tomcat-juli library
is documented in the Logging chapter in the User Guide.
* conf - Server configuration files (including server.xml)
* lib - Libraries and classes, as explained below
* logs - Log and output files
* webapps - Automatically loaded web applications
* work - Temporary working directories for web applications
* temp - Directory used by the JVM for temporary files (java.io.tmpdir)
In CATALINA_HOME:
* bin - Startup and shutdown scripts
The following files will be used only if they are absent in
CATALINA_BASE/bin:
setenv.sh (*nix), setenv.bat (Windows), tomcat-juli.jar
* lib - Libraries and classes, as explained below
* endorsed - Libraries that override standard "Endorsed Standards"
libraries provided by JRE. See Classloading documentation
in the User Guide for details.
By default this "endorsed" directory is absent.
In the default configuration the JAR libraries and classes both in
CATALINA_BASE/lib and in CATALINA_HOME/lib will be added to the common
classpath, but the ones in CATALINA_BASE will be added first and thus will
be searched first.
The idea is that you may leave the standard Tomcat libraries in
CATALINA_HOME/lib and add other ones such as database drivers into
CATALINA_BASE/lib.
In general it is advised to never share libraries between web applications,
but put them into WEB-INF/lib directories inside the applications. See
Classloading documentation in the User Guide for details.
It might be useful to note that the values of CATALINA_HOME and
CATALINA_BASE can be referenced in the XML configuration files processed
by Tomcat as ${catalina.home} and ${catalina.base} respectively.
For example, the standard manager web application can be kept in
CATALINA_HOME/webapps/manager and loaded into CATALINA_BASE by using
the following trick:
* Copy the CATALINA_HOME/webapps/manager/META-INF/context.xml
file as CATALINA_BASE/conf/Catalina/localhost/manager.xml
* Add docBase attribute as shown below.
The file will look like the following:
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="${catalina.home}/webapps/manager"
antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.0\.0\.1" />
</Context>
See Deployer chapter in User Guide and Context and Host chapters in the
Configuration Reference for more information on contexts and web
application deployment.
无奈英语看起来比较吃力,在 /etc/apache-tomcat-7.0.81/bin 目录下的 startup.sh 里面加上几行代码,设置变量:
# tomcat on ubuntu
JAVA_HOME=/etc/jdk-9
JRE_HOME=$JAVA_HOME/jre
CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
TOMCAT_HOME=/etc/apache-tomcat-7.0.81
对应的图片如下:
还要修改下文件的权限,才能执行,我偷懒了,文件夹下面都设置为 777, 最后得到的结果如下:
另外,补充一点,如果想要用 termianl 命令行的方式去关闭 tomcat 服务器,还要在 shutdown.sh 文件里面增加上面的环境变量,补充上去即可,否则会出现这样的提示。
问题 1:
tomcat 刚刚安装启动失败出现的问题提示:
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program
解决问题的思路:
tomcat/bin/catalina.sh (根据你自己的 jdk 路径进行修改) 在文件的正文开头,即正式代码前,大概在 99 行添加如下代码:
export JAVA_HOME=/usr/local/jdk
export JRE_HOME=/usr/local/jdk/jre
启动成功了!
问题 2:
在 /etc/profile 中添加环境变量后,是使用 source /etc/profile 编译后只能在当前终端生效
重新开启一个终端后,该环境变量失效。
解决问题的思路:
重启系统:reboot,问题解决