JDK17+tomcat11安装配置教程(压缩包方式)_tomcat11.0安装教程-程序员宅基地

技术标签: java  tomcat  

目录

前言

JDK下载以及配置

tomcat下载以及配置

注意事项


前言

最近由于工作需要,换了一台新电脑。这可是个麻烦事,意味着我需要重新给电脑安装环境了。说起配置环境,那首先不得不从jdk开始操作。然后搜索引擎看了一大堆下来,发现很多帖子都是一路快进。不管是版本老一点jdk+tomcat的还是新一点的,都使我现在又重新尝试了一边当初配置环境的痛苦。

  1. 关于版本:为了开发方便和老项目的兼容性,大多数人仍然会使用JDK8+tomcat8的 官方默认版本来配置。但是现在都2023年了,我还是想推荐尝试一下高版本的组合。所以这里使用了JDK17+tomcat11的组合。不过需要注意的是,jdk17也是有版本细分的,tomcat同理。这里使用版本:JDK17.0.1+tomcat11.0.0-M4。
  2. 关于安装方式:考虑到后期卸载的方便,还有自己对文件的把控。这里使用了压缩包解压方式安装。并不太推荐使用安装器一键安装。虽然安装器版本的能够快速使用,几乎不用手动做环境上的配置。但是后期想卸载,你都不知道他到底某某地方放了某某文件。
  3. 关于选择:真要求稳的话,就请选择jdk8+tomcat8的组合。网上也有相应的较老的文章,但是也足够适用。本文暂时不对老版本做什么描述。至于为什么要下载细分版本的jdk和tomcat,是因为这是我对jdk17和tomcat11多个版本碰撞出来的结果。暂时没有出错,也是为了大家少走弯路。
  4. 关于操作中的问题:文章最后描述了一些注意事项,以帮助大家更好的排查错误。如果有小伙伴有什么百度解决不了的问题也可以在评论区大家一起解决。

JDK下载以及配置

1.上搜索引擎直接搜“jdk下载”基本都能直接出现官网。

2.来到官网后,发现都会是最新的版本。同时也会有我们需要的jdk17版本。不过直接在当前页面下载的话,都是官方推荐的最终稳定版,一般都是最新版。而我们需要下载它的细分版本。为了下载jdk17.0.1版本,我们需要去历史文档列表下载。

Jdk下载官网:https://www.oracle.com/cn/java/technologies/downloads/

3.点击下载之后,我们自己选择一个想要安装的地方,然后解压。

4.我们按下win+R打开运行,然后输入下面命令就能快捷打开高级系统设置。

5.在系统变量栏目新建一个JAVA_HOME环境变量。作为我们jdk的主目录,变量值就是你解压的地方的文件夹。

6.然后为了java命令正常执行,我们必须要编辑一下Path变量。

%JAVA_HOME%\bin

%JAVA_HOME%\jre\bin

7.然后新建一个CLASSPATH变量。这个配置成功后,我们在cmd命令行中就可以随处执行java命令。

.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

8.为了解释classpath变量的作用,我们先来看一下jdk的目录。

可以看到正常使用java时,调用的命令都是一些java相关的exe程序。如果我们不配置CLASSPATH变量的话,那么我就只能在当前目录下使用java命令。配置了之后,我们就可以随处调用了。可以看见下面在我们自己的非jdk/bin目录执行的结果是成功的。至此jdk的环境就配置完毕了。

 

tomcat下载以及配置

1.依然是来到官网下载

我们需要到archives历史文档中去下载我们的细分版本。

主要不要下载错了,我需要的是64位的windows压缩包。

2.惯例,下载完后,解压在你想要放的目录。

3配置环境变量。这一步很简单只需要一个就够了。需要注意的是tomcat8中这个环境变量名是TOMCAT_HOME,只有在高版本的tomcat中才是CATALINA_HOME。

4.来到tomcat的bin目录下,直接双击startup.bat文件就可以开启tomcat服务器。

在浏览器中输入127.0.0.1:8080就可以访问了。不需要时,我们可以直接关掉这个命令行窗口就可以关闭我们的tomcat服务器。也可以直接双击shutdown.bat文件。

注意事项

1.我们可能会知道,老版本配置jdk时候会要求JRE_HOME,并且解压jdk之后,主目录里也会自带jre这个目录。而新版本的jdk已经不会自带jre这个文件夹了。事实上是,jdk的功能包含了jre的功能。最重要的就是jvm.dll这个就是jre的核心文件。显然jdk也有这个文件,在bin\server目录下。

方法一,JRE_HOME可以直接设置为跟JAVA_HOME一样(强烈推荐这种方法),高版本tomcat能够自动设置JRE_HOME等于JAVA_HOME,从startup.bat中就能看出来。

二是在jdk的bin目录下使用下面命令生成一个jre文件夹:

jlink.exe --module-path jmods --add-modules java.desktop --output jre

2. 我们知道bat本质上是个shell脚本文件,内部是文本格式,可以使用记事本修改的。Startup.bat这个文件里面就是一连串的命令调用。如果出现问题可以单独查看调用链路中的报错信息。在命令行里,输入startup.bat而不是双击,这样可以在命令行里看到错误。也可以输入catalina run命令来查看。

下面是双击bat的调用链路。

startup->catalina->setclasspath->catalina

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lvther/article/details/131890713

智能推荐

华为诺亚方舟实验室实习面试_华为诺亚方舟 coding-程序员宅基地

文章浏览阅读2.8k次,点赞3次,收藏8次。前言记录一下自己遇到的实习面试经历,希望能对后来人有用。面试总共分为两轮:第一轮是项目面试,主要讲自己做的研究工作以及论文相关情况;第二轮主要是CodingTest测试;这里主要讲讲自己的CodingTest,其实代码测试的题目和LeetCode差不多,水平差不多,题目可能不一定相同。给了我两个题目,一道是困难,一道是简单的。一、题目说明题目1:A为一个十进制数(以整数为例),k位,k<100。求B使得B为大于A的最小整数,且A各位的和等于B各位的和。题目2:给一定数量的信封,带有整数对_华为诺亚方舟 coding

网关和本机IP不同网段的上网办法_同一网关下ip不同网段-程序员宅基地

文章浏览阅读7k次。原贴:http://www.linuxeden.com/html/softuse/20090613/66175.html网关和本机IP不同网段的上网办法本机IP地址是 202.*.*.*netmask是255.255.255.192网关是 61.*.*.*两者不在同一网段。Windows下貌似很容易解决,直接设好IP网关即可,路由表会自动设好,Linux却不行。_同一网关下ip不同网段

计算机信息数字化基础_十进制-10的真值和机器数-程序员宅基地

文章浏览阅读2.4k次。八卦图与二进制的联想易有太极,是生两仪,两仪生四象,四象生八卦!计算机都涉及到哪些数制?二进制(Binary),八进制(Octal),十进制(Decimal),十六进制(Hexadecimal)二进制用于电脑识别十进制用于人来识别而八进制与十六进制就是用来协调人和计算机矛盾的进制二进制有极大的优势:易于物理实现,二进制运算规则简单,机器可靠性高,通用性强,可用于逻辑_十进制-10的真值和机器数

在HTML5中,边框的边距(margin)和填充(padding)通常是通过CSS来设置的,而不是直接在HTML中_htmlvss上边距框代码-程序员宅基地

文章浏览阅读2.8k次。在HTML5中,边框的边距(margin)和填充(padding)通常是通过CSS来设置的,而不是直接在HTML中。边框本身是由CSS的border属性定义的,而边距和填充则分别通过margin和padding属性来设置。你也可以分别设置每个方向的边距,如margin: 10px 20px 10px 0;(上10px,右20px,下10px,左0px)。例如,margin: 10px 5px;还要注意的是,虽然示例中使用了div元素来展示边框、边距和填充,但这些CSS样式可以应用于任何HTML元素。_htmlvss上边距框代码

手把手教你安装Jupyter Notebook(保姆级教程)_jupyter notebook安装教程-程序员宅基地

文章浏览阅读10w+次,点赞323次,收藏1.8k次。Jupyter Notebook安装教程_jupyter notebook安装教程

【手势识别】笔记本摄像头实时手势识别,同理可进行其它目标检测_笔记本摄像头识别动作-程序员宅基地

文章浏览阅读7.5k次,点赞15次,收藏78次。“你比个手势,AI就识别出Emoji,浏览器上跑:已开源,推特2.8万赞”本文运行了尼克小哥的开源代码,其中有那么一点点坑吧。zxx让我把这个跑一下,跑是跑成了,但他没用上。尼克用的是TensorFlow.js,用IBM云上的GPU训练的,免费的k80,半小时训练时间,在IBM的annotations上准备数据标注手势图。作者写的教程,其实真的蛮手把手的,就是细心一点就好了。当然,我跑出来..._笔记本摄像头识别动作

随便推点

Tornado-03-Tornado、数据库、同步和异步、Tornado的协程(异步Web请求客户端、基于gen.coroutine的协程异步、并行协程)、Tornado的WebSocket-程序员宅基地

文章浏览阅读517次。Tornado一、数据库与Django框架相比,Tornado没有自带ORM,对于数据库需要自己去适配。我们使用MySQL数据库。在Tornado3.0版本以前提供tornado.database模块用来操作MySQL数据库,而从3.0版本开始,此模块就被独立出来,作为torndb包单独提供。torndb只是对MySQLdb的简单封装,不支持Python 3。所以如果在当前版本中使用torndb进行数据库操作,需要修改源代码,所以在此,我们使用pymysql。项目中如果要使用ORM,可以使用SQL

[dp]POJ 3176 Cow Bowling解题报告_the cows don't use actual bowling balls when they -程序员宅基地

文章浏览阅读477次。题目: Cow Bowling Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16077 Accepted: 10705 DescriptionThe cows don’t use actual bowling balls when they go bowling. They each take_the cows don't use actual bowling balls when they go bowling. they each take a number (in the range 0..99), though, and line up in a standard bowling-pin-like triangle like this:

【Android 练习】Intent 隐式启动_intent隐式启动-程序员宅基地

文章浏览阅读810次。MainActivity.xml<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" ="http://schemas.android.com/apk/res/android" an.._intent隐式启动

flutter 环境搭建_flutter环境搭建-程序员宅基地

文章浏览阅读9.6k次,点赞4次,收藏54次。Flutter 是谷歌开发的一款开源、免费的,基于 Dart 语言的U1框架,可以快速在i0S和Android上构建高质量的原生应用。它最大的特点就是跨平台和高性能。Dart是由谷歌,在2011 年开发的计算机编程语言,它可以被用于Web、服务器、移动应用和物联网等多个领域。号称要取代JavaScript._flutter环境搭建

MySQL 大表优化方案-程序员宅基地

文章浏览阅读92次。点击上方“Java基基”,选择“设为星标”做积极的人,而不是积极废人!源码精品专栏原创 | Java 2020超神之路,很肝~中文详细注释的开源项目...

android 9.0 开机动画,Android bootanim开机动画启动流程-程序员宅基地

文章浏览阅读870次。1. system进程在启动过程中会调用SurfaceFlinger类的静态成员函数instantiate来启动SurfaceFlinger服务。启动过程中,首先创建一个SurfaceFlinger实例,此实例会被一个SP 指针引用。当一个对象被一个智能指针第一次引用的时候,该类的onFirstRef方法将被调用:void SurfaceFlinger::onFirstRef(){mEventQu..._android bootnim