JDK8 终止更新,JDK9, 10都是短期支持版本,只有最新的JDK11才是一个长期支持版本,所以大家直接用JDK11即可。
Oracle 将发布两个不同版本,分别为 Oracle JDK 和 OpenJDK 「除了所附带的许可文件不一样,刚发布的版本几乎完全相同」。
开源选择就是OpenJDK了,以后商务及开源的区别会越来越明显。此外,Android已开始采用OpenJDK。
参考jdk各个版本的区别介绍:https://www.jianshu.com/p/38985b61ea83
(1)将下载的压缩包移动到用户主文件夹,解压缩,并移动到/usr/java目录下。
tar -zxvf jdk-11.0.1_linux-x64_bin.tar.gz
sudo mkdir /usr/java
sudo mv jdk-11.0.1_linux-x64_bin /usr/java
(2)JDK 11 修需要配置的内容如下:
JAVA_HOME jdk目录
Path %JAVA_HOME%\bin;
Linux打开环境变量方法:
(1)用户主目录下的配置文件,该方式添加的变量只对当前用户有效:没有gedit,肯定有vim或vi。
sudo gedit ~/.bashrc
sudo gedit ~/.profile
export JAVA_HOME=/usr/java/jdk-11.0.1
export PATH=${JAVA_HOME}/bin:$PATH
环境变量生效:
source~/.profile
source ~/.bashrc
(2)系统目录下的配置文件
sudo gedit /etc/profile
source /etc/profile
同上述用法。
sudo gedit /etc/environment
找到以下的 PATH 变量:
PATH="<......>"
修改该 PATH 变量,在其中加入自己的path即可,例如:
PATH="<......>:your path1:your path2 …"
各个path之间用冒号分割。该文件也是重启生效,影响所有用户。 注意这里不是添加export PATH=… 。
(3) 终端添加临时环境变量
sudo export PATH="$PATH:your path1:your path2 …"
这种方式变量立即生效,但用户注销或系统重启后设置变成无效,适合临时变量的设置。
注:
(1)JDK11不需要设置jre环境变量,JRE包含在JDK中,另外如果有需求的话(比如运行在JAVA虚拟机的app需要指定jre路径),JDK专门提供工具jlink用于在JDK中提取JRE。也可以单独再下载一个jre更方便版本管理(推荐稳定版的jre8)。
(2)实际上,JDK 1.4之前版本的JDK编译和运行才需要设置CLASSPATH环境变量,但是1.5及以后的版本都不需要配置。
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
dt.jar和tools.jar位于:{Java_Home}/lib/下,而rt.jar位于:{Java_Home}/jre/lib/下,其中:
rt.jar是JAVA基础类库,也就是你在java doc里面看到的所有的类的class文件;dt.jar是关于运行环境的类库;
tools.jar是工具类库,编译和运行需要的都是toos.jar里面的类,分别是sun.tools.java.*; sun.tols.javac.*。
1. rt.jar
rt.jar 默认就在Root Classloader的加载路径里面的,而在Claspath配置该变量是不需要的;同时jre/lib目录下的
其他jar:jce.jar、jsse.jar、charsets.jar、resources.jar都在Root Classloader中
2. tools.jar
tools.jar 是系统用来编译一个类的时候用到的,即执行javac的时候用到
javac XXX.java
实际上就是运行
java -Calsspath=%JAVA_HOME%\lib\tools.jar xx.xxx.Main XXX.java
javac就是对上面命令的封装 所以tools.jar 也不用加到classpath里面
3. dt.jar
dt.jar是关于运行环境的类库,主要是swing的包 在用到swing时最好加上。
(1)下载Tomcat 9,如上图所示。
(2)解压压缩文件,并移动到/usr/tomcat9
tar -zxvf apache-tomcat-9.0.14.tar.gz
sudo mkdir /usr/tomcat9
sudo mv apache-tomcat-9.0.14 /usr/tomcat9
(3)配置环境变量(好像没啥用,不配置也能用)
(4)配置脚本文件
tomcat有两种启动和关闭方式。
1、catalina.sh
sudo ./bin/catalina.sh start
sudo ./bin/catalina.sh stop
调试
catalina.sh debug
2、startup.sh和shutdown.sh
sudo ./bin/startup.sh
sudo ./bin/shutdown.sh
其中需要修改这几个脚本文件:
sudo vi ./bin/startup.sh
sudo vi ./bin/shutdown.sh
或者
sudo vi ./bin/startup.sh
好像配置CATALINA_HOME也没啥用,不配置也能用。
(5)启动和关闭
启动和关闭方式如第四步所示,如果不配置脚本,则会提示错误。
在Tomcat中部署Java Web应用程序有两种方式:静态部署和动态部署。
静态部署指的是我们在服务器启动之前部署我们的程序,只有当服务器启动之后,我们的Web应用程序才能访问。
这种方式不被推荐,项目不好管理,而且需要链接加上项目名才能正常访问。
1、直接将web项目文件拷贝到webapps目录下
可以直接将web项目下WebRoot目录( 标准web应用根目录下的所有文件:如果IDE是eclipse,内容默认是WebContent目录下的所有文件,如果是myeclipse,默认是WebRoot目录下的所有文件)下所有内容复制到tomcat安装目录下的webapps目录,这个webapps目录是Tomcat目录的默认应用目录,webapps目录下的每个文件夹都是一个应用(可以直接放一个index.html作为静态网页),当tomcat服务器启动时候,会加载webapps目录下所有应用。比如一个web项目TT,直接将TT项目的WebRoot目录下所有内容复制,然后在webapps目录下新建一个TT目录,然后将复制的内容粘贴到webapps目录下新建的TT目录下。
或1、将编写并编译好的web项目(注意是编译好的),放入到 webapps 中。
war包的生成:
2、启动tomcat服务器(双击 bin 目录下的 startup.bat,启动服务器)。Tomcat启动时将自动加载应用。
3、在浏览器输入:http://localhost:8080/项目名/访问的文件名即可。
对于webapps这个tomcat默认的应用存放的目录是可配置的(但必须是启动Tomcat之前才行),打开Tomcat安装目录下conf目录下server.xml文件找到的如下代码:
unpackWARs="true" autoDeploy="true">
将appBase修改即可,改写tomcat的默认应用目录。比如改变为webs,那么启动Tomcat后立即在tomcat安装目录下新建一个叫webs的文件夹作为tomcat 应用目录,原来的部署在webapps目录下的应用都访问不到了,比如讲web应用复制到webs目录下才能访问到。
这种方式比较简单,但是web应用程序必须在webapps目录下。Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。
注: Web应用以.war文件的形式部署
将JSP程序打包成一个war包放在目录下,服务器会自动解开这个war包,并在这个目录下生成一个同名的文件夹。一个war包就是有特性格式的jar包,它是将一个Web程序的所有内容进行压缩得到。
打包请参考如下步骤:
1、打开命令提示符(cmd)
2、设置jdk环境变量
3、在命令提示符中进入项目文件夹F:/PetWeb后,键入如下命令:jar cvf Pet.war */ . (注意最后有个“. ”)。这样在F:/PetWeb下应该有Pet.war文件。 (也可以打包到指定的地方,命令如下:jar cvf d:/Pet.war */ . )
部署Pet.war文件非常简单,将刚才xml文件中的docBase ="F:/PetWeb" 更改为docBase ="F:/Pet.war" 或者直接将其拷贝到webapps目录下就可以。然后重新启动服务器就可以将Pet.war部署为一个Web应用程序了。服务器将Pet.war文件解开,并且在webapps下面又生成了一个Pet文件夹,然后把Pet.war的内容拷贝到里面去了。我们可以通过以下方式取消自动解压缩,将xml配置文件中的unpackWAR 属性设置为"false" 即可。
在Tomcat的配置文件中,一个Web应用就是一个特定的Context,可以通过在server.xml中新建Context里部署一个JSP应用程序。这种方式可以不必将web目录拷贝到webapps下,直接在当前目录即可部署。方法如下:
1、打开tomcat下conf/server.xml(也可以修改默认端口号等),在
为true时,支持热部署,会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,自动装载新的应用程序。
antiResourceLocking和antiJARLocking: 热部署是需要配置的参数,默认false避免更新了某个webapp,有时候Tomcat并不能把旧的webapp完全删除,通常会留下WEB-INF/lib下的某个jar包,必须关闭Tomcat才能删除,这就导致自动部署失败。设置为true,Tomcat在运行对应的webapp时,会把相应的源文件和jar文件复制到一个临时目录里。
2、双击 startup.bat,启动 tomcat 服务器,然后在浏览器输入访问的项目名称路径
以上两种方法,Web应用被服务器加载后都会在Tomcat的conf\catalina\localhost目录下生成一个XML文件,其内容如下:
这种方式和方法2差不多,但不是在Server.xml文件中添加Context标签,而是在$CATALINA_HOME/conf /Catalina/localhost中添加一个xml文件,如Pet.xml。在Tomcat安装目录conf/Catalina /localhost下,里面有Tomcat自带的三个应用,随意复制其中的一个XML文件,然后修改docbase指向你自己的应用程序,并把文件名改名,各参数参见方法2中的
1、进入到conf\Catalina\localhost 目录,新建一个 项目名.xml 文件
2、在 那个新建的 xml 文件中,增加下面配置语句(和上面的是一样的,但是不需要 path 配置,加上也没什么用)
3、在浏览器输入路径:localhost:8080/xml文件名/访问的文件名
说明:Catalina\localhost目录tomcat下载下来默认是没有的,首次启动会自动创建,也可以手动创建;配置中去掉path属性,因为配了也没用,访问项目时的根路径只取决于XML文件的名称;如果没有WebContent目录,内容直接放在项目根目录下,那这个xml文件按理就需要命名为“.xml”,要是人为这么命名,操作系统是不允许的,但是用tomcat插件部署确可以做到,比较神奇。
总结:
①、第一种方法比较普通,但是我们需要将编译好的项目重新 copy 到 webapps 目录下,多出了两步操作
②、第二种方法直接在 server.xml 文件中配置,但是从 tomcat5.0版本开始后,server.xml 文件作为 tomcat 启动的主要配置文件,一旦 tomcat 启动后,便不会再读取这个文件,因此无法再 tomcat 服务启动后发布 web 项目
③、第三种方法是最好的,每个项目分开配置,tomcat 将以\conf\Catalina\localhost 目录下的 xml 文件的文件名作为 web 应用的上下文路径,而不再理会
而且不需要修改tomcat默认配置,并且如果想取消部署,直接删除xml配置文件即可。
④、第三种方法有个优点,可以定义别名。服务器端运行的项目名称为path,外部访问的URL则使用XML的文件名。这个方法很方便的隐藏了项目的名称,对一些项目名称被固定不能更换,但外部访问时又想换个路径,非常有效。
第一、二种还有优点,可以定义一些个性配置,如数据源的配置等。
⑤、Tomcat中的Context元素代表一个web应用,运行在某个特定的虚拟主机上。一个Host元素中嵌套任意多的Context元素。每个Context的路径必须是惟一的,由path属性定义。另外,你必须定义一个context路径长度为0的Context,这个Context称为该虚拟主机的缺省web应用,用来处理那些不能匹配任何Context的Context路径的请求。
通常我们使用第三种方法。
注意:删除一个Web应用同时也要删除webapps下相应的文件夹中内容,配置文件server.xml中相应的Context,还要将Tomcat的conf\catalina\localhost目录下相应的xml文件删除。否则Tomcat仍会按照配置去加载。
但 tomcat 5.5之后独立出了context.xml,并且官方不再提倡修改server.xml。打开conf/context.xml可以看到里面已经配置了一个Context。如果一个Tomcat只配置一个Web应用程序, 则可以直接修改这里的代码:
WEB-INF/web.xml
${catalina.base}/conf/web.xml
动态部署是指可以在服务器启动之后部署web应用程序,而不用重新启动服务器。
动态部署要用到服务器提供的manager.war文件,如果 在$CATALINA_HOME/webapps/下没有该文件,你必须去重新下载tomcat,否则不能完成以下的功能。要想使用该管理程序必须首先编辑$CATALINA_HOME/conf/tomcat-users.xml文件,内容如下:
然后在浏览器中键入如下地址:http://localhost:8080/ ,应该看到一个加菲猫了吧。点击左边的Tomcat Manager链接,提示输入用户名和密码,本文都是coresun ,然后可以看到以下页面:
(1)Context Path(option): 中输入/Pet
(2)XML Configration file URL 中要指定一个.xml文件,比如我们在F:/下建立一个Pet.xml文件,内容如下:
(3)WAR or Directory URL: 中键入F:/PetWet或者F:/Pet.war都可以,然后点击Deploy按钮,看看上面是不是已经看到了你web应用程序,名字就是你Context Path(option):中的名字。
(4)如果你部署.war文件还有更加简单的方式,下面还有个Select WAR file upload 点击浏览选择.war文件,然后点击Deploy也可以。
让tomcat只运行conf/server.xml中指定的web应用
可以有以下2种办法:
实现一:
1)将要部署的WEB应用放在webapps以外的路径, 并在server.xml相应的Context 中的docBase 指定.
2)删除webapps中的所有文件夹, 以及conf/catalina/localhost下所有xml文件.
注: webapps是server.xml中的Host 元素的appBase 属性的值.
实现二:
修改server.xml中Host 元素的属性, 添加或修改: deployXML ="false" deployOnStartup ="false" autoDeploy="false"
含义:
deployXML ="false" : 不部署conf/catalina/localhost下的xml相应的WEB应用
deployOnStartup ="false" :tomcat启动时, 不部署webapps下的所有web应用
autoDeploy ="false" :避免tomcat在扫描改动时, 再次把webapps下的web应用给部署进来.
注:
Tomcat中webapps目录下不能直接存放网页格式的文件,否则无法访问到该文件,必须有子目录才能访问该网页文件。
例如:我们直接将index.html放在webapps目录中,通过浏览器http://localhost:8080/index.html 是无法访问到index.html的。而必须要webapps/petweb/index.html才可以通过http://localhost:8080/petweb/index.html 访问到index.html页面。
配置war包名称。默认的war包名是构件id加上版本号。如果要改成其他名字可以在pom.xml的
在windows服务器上将tomcat注册成系统服务。用命令行窗口进入到tomcat bin目录下,这个目录下有个service.bat文件,这个文件就是为了将tomcat注册成系统服务准备的。执行
service.bat install Tomcat8 后面的Tomcat8是服务的名称,可以自己取。如果取消服务,可以
service.bat remove Tomcat8。注册成系统服务后就可以用net start Tomcat8和net stop Tomcat8来启动或关闭Tomcat。
windows系统的配置更为简单,只需要解压,设置环境变量即可。