Java必备技能之环境搭建篇(基础环境)详细版

2023-11-17

本文都是 基于Window环境搭建

Java开发必备环境搭建

开发环境简图:(基础版没有加入docker,本文重点在于基础环境,后期将在linux上 搭建基于容器化docker的开发部署环境)

搭建思路: 先单独搭建,最后集成搭建并配置。

1、在windows上搭建开发环境,架构草图如下。

2、Linux版本环境我会采用如下技术架构草图演示环境搭建:

3、在以上技术架构上引入Docker、K8s搭建项目环境。

 

本文主要是基于windows环境的搭建以便快速入门。

前置环境:安装JDK

后续环境:maven、tomcat、git、gradle、nginx、MySQL、redis

1、JDK下载与安装

1. 前往Oracle网站下载JDK程序并安装。

http://www.oracle.com/technetwork/java/javase/downloads/index.html

如果使用最新JDK直接点击JDK Download即可 目前最新的版本为Java 15,

如果需要其他JDK版本在 https://www.oracle.com/java/technologies/javase-downloads.html 页面底部可以找到入口

下载后安装正常软件的方式不断next 安装JDK即可(可以选择安装路径)没啥好说的,就不截图了

2、JDK配置环境变量

(1) 新建JAVA_HOME环境变量,赋值为JDK的安装目录:

(2) 新建CLASSPATH环境变量,赋值为.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(可选步骤,不配也可)

(3) 在PATH环境变量中追加Java环境变量:

3. CMD运行如下代码,测试我们的安装和配置:

正常显示出JDK版本信息 说明安装OK!

 

2、Maven下载与安装

1、浏览器打开官网 [https://maven.apache.org/]

 

 

maven旧版本下载

 


 2、环境配置

新建环境变量MAVEN_HOME,赋值D:\DevResource\apache-maven-3.3.9

编辑环境变量Path,追加%MAVEN_HOME%\bin\;

 

至此,maven已经完成了安装,我们可以通过DOS命令检查一下我们是否安装成功:

cmd 打开命名窗口:

 

3、配置Maven本地仓库

在D:\DevResource\apache-maven-3.3.9目录下新建Repository文件夹,该目录用作maven的本地库。

打开D:\DevResource\apache-maven-3.3.9\conf\settings.xml文件,查找下面这行代码:

<localRepository>/path/to/local/repo</localRepository>

 

 

localRepository节点用于配置本地仓库,本地仓库其实起到了一个缓存的作用,它的默认地址是 C:\Users\用户名.m2。

当我们从maven中获取jar包的时候,maven首先会在本地仓库中查找,如果本地仓库有则返回;如果没有则从远程仓库中获取包,并在本地库中保存。

此外,我们在maven项目中运行mvn install,项目将会自动打包并安装到本地仓库中。

运行一下DOS命令

mvn help:system

 

  • 如果前面的配置成功,那么D:\DevResource\apache-maven-3.3.9\Repository会出现一些文件。

4、镜像源配置加快maven下载速度

  • 【阿里云云效Maven库】

    找到阿里云官方maven源

[https://maven.aliyun.com/mvn/guide]

 

5、配置本地Maven仓库

 

 

打开Maven安装目录下conf中setting文件:

 

6、配置IDEA中的Maven环境

打开Maven安装目录下conf中setting文件:

 

7、配置Eclipse的Maven环境

1、Eclipse Oxygen,打开Window->Preferences->Maven->Installations,右侧点击Add。

2、设置maven的安装目录,然后Finish

3. 选中刚刚添加的maven,并Apply。

4、打开Window->Preferences->Maven->User Settings,配置如下并Apply:

8、Maven的安装和配置全部结束。

3、Tomcat的安装与配置

 1. 去官网下载安装包

http://tomcat.apache.org/

我下载的是tomcat8:

https://tomcat.apache.org/download-80.cgi

 下图红框中, 上面两个为绿色版(需要配置环境变量), 下面一个为安装版。

其他历史版本下载地址参考下图所示入口

 


2. 配置环境变量

2.1 在'系统变量'中, 新建TOMCAT_HOME, 若已存在则点击编辑.

变量值为 解压的路径 

2.2 在'系统变量'中, 新建CATALINA_HOME, 若已存在则点击编辑.

2.3 在PATH中添加 %CATALINA_HOME%\bin

 

2.4 在CLASSPath中添加 %CATALINA_HOME%\lib\servlet-api.jar (后面没有分号) (可选配置,可以不配置)

 

 

3. 单击“开始”—“运行”,输入"cmd",在控制台输入 service install Tomcat9.

备注: 由于我之前安装过tomcat8 所里这里我使用tomcat9来演示安装过程。其他版本都一样的,没区别。

在系统中安装Tomcat8服务项,方便管理

4. 启动该服务

点击开始, 搜索 服务 或者 进入控制面板—系统和安全—管理工具—服务,

找到Apache Tomcat Tomcat8服务项,右击该项,点“启动”,启动该服务

启动后

5. 打开浏览器, 地址栏输入http://localhost:8080 或 http://127.0.0.1:8080

如果出现tomcat示例主页,则表示服务器安装成功

配置文件:可以根据项目需求修改

配置文件目录:这是我的 D:\DevPackTool\apache-tomcat\apache-tomcat-8.5.57\conf

你可以在安装目录下找到conf文件夹内的server.xml。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java必备技能之环境搭建篇(基础环境)详细版 的相关文章

  • 将键与多个值对象关联的有效集合[重复]

    这个问题在这里已经有答案了 有任何有效的集合可以将键与多个值关联起来 例如 new HashMap
  • selenium 2.0 中的 isElementPresent

    大家好 我正在使用 webdriver 所以如果我想使用 selenium s rc 函数 isElementPresent 我必须模拟 selenium rc 所以我会执行以下操作 import org openqa selenium B
  • Eclipse 与 IntelliJ 热部署

    我的应用程序配置 Tomcat 8 Spring Spring MVC Hibernate 在 Eclipse 中 我创建了 Tomcat 服务器 并将我的应用程序添加到资源中 JSP JS CSS 和 JAVA 类热部署的工作原理就是这样
  • 如何在android中使用retrofit访问404错误?

    我正在使用改造 2 访问 REST API 以使用原始正文插入 JSON 数据 我从服务器获得成功响应 但在响应时收到 404 错误 我想访问404错误请帮我解决这个问题 ApiUtil getServiceClass sendFinalC
  • 在 Spring Webflux 中执行阻塞 JDBC 调用

    我使用 Spring Webflux 和 Spring data jpa 使用 PostgreSql 作为后端数据库 我不想在进行数据库调用时阻塞主线程 例如find and save 为了实现同样的目标 我有一个主调度程序Controll
  • 我从 String placeName = placeText.getText().toString(); 收到空指针异常

    您好 想从编辑文本中获取地名并在地图上标记 这是我的代码 其中出现空指针异常 请帮助我应该做什么以及哪里出错了 因为我从对话框中的编辑文本字段获取地名 View layout View inflate this R layout alert
  • 如何对 jar 文件资源使用 File.separator?

    我正在尝试读取位于 jar 文件中的属性文件 我想使用 File separator 因为应用程序将在多个平台上运行 我正在构建路径如下 jarFilePath jar file jarFile getAbsolutePath jarPro
  • 使用 SSL 和代理设置的 Rest 客户端获取连接超时

    我正在使用带有忽略 ssl 的 Rest 客户端 它工作正常 但在将来我尝试使用客户端证书进行的生产中将无法工作 我有 ca 证书和客户端证书 我用它创建了一个客户端 但我收到错误 Exception in thread main com
  • Android Studio:如果设置项目的背景颜色,ListView OnClick 动画将不起作用

    在我的项目中 我在 ListView 内设置了项目 由插入 ConstraintLayout 中的多个元素组成 的背景颜色 但如果背景颜色不是至少一点透明 则单击和长按的默认动画会消失 事实上 随着透明度的降低 点击元素的效果越来越不明显
  • 在 Java 中生成 LaTeX 输出 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有用于从 Java 生成 LaTeX 输出的 Java 库 渲染乳胶 JLatex数学 https
  • Java 套接字 - 读和写

    问题 客户端没有收到任何消息 这是客户端和服务器的完整代码 CLIENT public class Client extends Socket public Client String hostName int port throws Un
  • 加密 mongodb 中的密码字段

    我有以下代码 它插入userName and password进入数据库 但密码以纯文本格式存储 我的意思是 当我查看数据库时 我可以看到插入的密码 我想存储password in encrypted format MongoClient
  • 如何组合 3 个或更多 CompletionStages?

    如果有 2 个 CompletionStages 我可以将它们与thenCombine method CompletionStage a aCompletionStage getA CompletionStage b bCompletion
  • @Transactional 注解属于哪里?

    如果您将 Transactional in the DAO类和 或其方法 或者注释使用 DAO 对象调用的服务类是否更好 或者注释两个 层 是否有意义 我认为事务属于服务层 它是了解工作单元和用例的人 如果您将多个 DAO 注入到需要在单个
  • Netty Nio java 中的通信

    我想在 Netty nio 中创建一个具有两个客户端和一个服务器的通信系统 更具体地说 首先 我希望当两个客户端与服务器连接时从服务器发送消息 然后能够在两个客户端之间交换数据 我正在使用本示例提供的代码 https github com
  • Java MYSQL/JDBC 查询从缓存的连接返回过时的数据

    我一直在 Stackoverflow 中寻找答案 但似乎找不到不涉及 Hibernate 或其他数据库包装器的答案 我直接通过 Tomcat 6 Java EE 应用程序中的 MYSQL 5 18 JDBC 驱动程序使用 JDBC 我正在缓
  • Java 中的连接路径

    In Python我可以连接两条路径os path join os path join foo bar gt foo bar 我正在尝试在 Java 中实现相同的目标 而不用担心是否OS is Unix Solaris or Windows
  • 尝试通过 Java 8 中的 JDBC-ODBC 连接到 .accdb 文件时出现 ClassNotFoundException

    我正在 Eclipse EE IDE 中的 Java 项目中工作 我必须在其中查询 accdb文件 问题是当我尝试加载驱动程序然后连接到数据库时 它给了我一个异常错误 My code try String filePath myfilepa
  • java - 简单计算在多线程中比在单线程中花费更长的时间

    我试图了解如何利用多线程 我写了一个简单的程序来增加i 比方说 使用两种方式 400 000 次 单线程方式 0 到 400 000 和多线程方式 在我的例子中 4 次 0 到 100 000 线程数等于Runtime getRuntime
  • 在 Spark MLlib 上使用 Java 中的 Breeze

    在尝试从Java使用MLlib时 使用微风矩阵运算的正确方法是什么 例如scala 中的乘法很简单 matrix vector 相应的功能在Java中是如何表达的 有一些方法 例如 colon times 可以通过正确的方式调用 breez

随机推荐

  • Threejs入门教程

    一 本地搭建Threejs官方文档网站 1 官网地址 Github https github com mrdoob three js 我们可以直接下载压缩包并解压或使用 git clone
  • python批量提取视频帧

    python批量提取视频帧 python批量提取视频帧 两种提取方式 按帧数提取 每个视频提取固定帧数 若所取帧数超过视频总帧数 则截取视频所有帧 按时间间隔提取 每个time提取一帧 1 使用示例 python video set py
  • 平衡小车设计_4_PID实现

    平衡小车设计 4 PID实现 参考平衡之家的算法实现 首先明确三个环的PID都是位置式PID 1 角度环 PD g tPidA actual roll g tPidA err g tPidA actual g tPidA set g tPi
  • Ubuntu20.04 搭建repo + gitlab的代码管理系统

    Ubuntu20 04 搭建repo gitlab的代码管理系统 1 为什么要用gitlab GitLab 是一个用于仓库管理系统的开源项目 使用Git作为代码管理工具 并在此基础上搭建起来的Web服务 安装方法是参考GitLab在GitH
  • 算法基础:k最近邻算法

    本博客所有内容均整理自 算法图解 欢迎讨论交流 了解过机器学习这个概念 一定知道有一种名为k最近邻的算法 简称KNN 对于k最近邻算法的定义 百度百科是这样给出的 K最近邻 k Nearest Neighbor KNN 分类算法 是一个理论
  • 异常类的定义、种类、抛出、声明和捕获

    目录 异常类定义 异常处理的必要性 异常处理 Java常见异常种类 1 Error 2 Exception 1 运行异常类Runtime Exception 2 非运行异常类Non RuntimeException 常见异常类 抛出异常th
  • 大话oracle rac 集群,大话Oracle RAC:集群、高可用性、备份与恢复

    第1部分 集群理论篇 第1章 RAC初体验 2 1 1 本书使用环境 3 1 1 1 硬件环境 3 1 1 2 软件环境 4 1 1 3 本书使用的环境 6 1 2 如何在PC机上搭建RAC环境 8 1 2 1 需要下载的软件 8 1 2
  • 拒绝服务攻击 - 学习笔记

    拒绝服务攻击 学习笔记 前言 概述 拒接服务攻击是目前来说 较为难以防御的攻击方式之一 其防御的难点在于难以分辨 正常用户与恶意用户 同时 随着攻击模式的进步 花样也越来越多 但是 服务器方也升级了安全策略 传统上 单机的 Dos 攻击已经
  • java设计6大原则总结

    1 开闭原则 Open Close Principle 定义 一个软件实体如类 模块和函数应该对扩展开放 对修改关闭 开放 封闭原则的意思就是说 你设计的时候 时刻要考虑 尽量让这个类是足够好 写好了就不要去修改了 如果新需求来 我们增加一
  • 【亲测有效新手教程】Vscode连接远程服务器编辑并运行深度学习代码

    文章目录 前言 使用步骤 1 安装OpenSSH 2 安装Remote SSH 参考链接 前言 在服务器上通过桌面已经配置好了深度学习的环境 并且存放了相关代码以及数据集 之前使用向日葵连接服务器进行代码编写 使用下来发现有延迟 不够丝滑
  • Kotlin如何提供与Java的100%互操作性?

    Kotlin与Java可以100 互操作 当您在每篇博客文章 社区话题或YouTube上首次搜索有关Kotlin的信息时 如果该话题是关于Kotlin的 那么这个词肯定在每个人的名单上都表明Kotlin可与Java 100 互操作 让我们看
  • 几个值得研究的工具

    一 DLIB库 C 实现的机器学习算法库 有离线的人脸识别SDK 比openCV里的人脸识别库效果好 除了这个库 要找到合适的离线版本的人脸识别库很难 国内的阿里 腾讯 百度 都没有离线SDK 都是在线的 二 KEEL 工具 是一款开源的数
  • php使用smtp发送邮件(ssl链接方式)

    在这里我要介绍的是如何使用smtp进行发送邮件 分别介绍了普通链接和ssl链接两种方式 一 准备材料 smtp类下载地址 https download csdn net download panjiapengfly 10688054 二 代
  • 甲骨文发布适用于 MongoDB 的 Oracle Database API;Chrome 和 Edge 互相“拉踩”;树莓派驱动程序现可在 Android 上运行

    整理 宋彤彤 责编 屠敏 开源吞噬世界的趋势下 借助开源软件 基于开源协议 任何人都可以得到项目的源代码 加以学习 修改 甚至是重新分发 关注 开源日报 一文速览国内外今日的开源大事件吧 一分钟速览新闻点 倪光南 可适当聚焦 RISC V
  • C++随机数之default_random_engine

    头文件 include
  • kafka中partition数量与消费者对应关系

    kafka是由Apache软件基金会开发的一个开源流处理平台 kafka是一种高吞吐量的分布式发布订阅消息系统 它可以处理消费者在网站中的所有动作流数据 kafka中partition类似数据库中的分表数据 可以起到水平扩展数据的目的 比如
  • Extjs IE内存问题

    1 使用了ExtJS 3 1并且更改了模块加载方式之后 我的OPOA内存回收有所改进 记录一下概要 1 不用autoload url url scripts true 的方式 而使用eval response responseText 方式
  • 家乐氏董事会批准将于10月2日分拆为两家公司

    美通社消息 家乐氏公司宣布 其董事会正式批准之前宣布的分拆为两家独立上市公司 Kellanova 和 WK Kellogg Co 的计划 2023 年 10 月 2 日完成分拆后 家乐氏公司将更名为 Kellanova Kellanova
  • java笔记:接口的特征和使用

    接口 1 接口的定义 修饰符 interface 接口名 extends 父接口1 父接口2 零个到多个常亮定义 零个到多个抽象方法定义 零个到多个内部类 接口 枚举定义 零个到多个默认方法或类方法定义 修饰符可以为public或者省略 d
  • Java必备技能之环境搭建篇(基础环境)详细版

    本文都是 基于Window环境搭建 Java开发必备环境搭建 开发环境简图 基础版没有加入docker 本文重点在于基础环境 后期将在linux上 搭建基于容器化docker的开发部署环境 搭建思路 先单独搭建 最后集成搭建并配置 1 在w