Java入门 - 图1

1. 安装JDK

1.1 什么是JDK?

  1. JDK全称为Java Development Kit,中文翻译为Java开发套件。顾名思义,就是用来开发Java应用程序的工具箱。需要与之区别的是JREJVM两个概念,分别简单总结如下:
概念 解释 .NET Core中相对应的概念
JVM Java虚拟机。是负责解释执行Java字节码的应用。是Java跨平台的核心。 .NET Core CLR
JRE Java执行环境。其实质就是在JVM的基础上添加一些核心库。 .NET Core Runtime
JDK Java开发套件。其实质就是在JRE的基础上添加一些开发者工具,典型的:java编译工具javac。 .NET Core SDK
  JVM、JRE、JDK之间是一个包含关系,如下图:<br />![](https://cdn.nlark.com/yuque/0/2020/png/388635/1586417811576-a933e447-d5fa-411d-b5e6-150bc3b9405a.png#align=left&display=inline&height=289&margin=%5Bobject%20Object%5D&originHeight=594&originWidth=822&size=0&status=done&style=none&width=400)

1.2 JDK发行版选择

    JDK居然还要选择?这对于.NET开发者来说可能是个比较难以理解的事情。<br />        众所周知,Java最大的标签有两个:跨平台和开源。而体现这两点价值的核心,就是JVM。JVM有一个公开的规范,只要遵循这个规范,任何人都可以实现自己的JVM,以及在此基础上提供JRE和JDK。于是有很多厂商提供了自己的JDK。比较著名的就是Oracle JDK和Open JDK。<br />        它们有什么区别呢?Oracle JDK和Open JDK都属于Oracle公司,两者的差距非常小。网上有很多阐述两者区别的文章,这里不再赘述。简单说来,Open JDK是主干,而Oracle JDK则是在主干基础上,添加一些需要付费的和非开源的组件。具体可参考这篇文章:[Oracle与OpenJDK之间的区别](https://juejin.im/post/5ca1c747e51d45761c7441fa)。<br />        我们应该选择哪一个呢?在2018年之前,这个问题很简单,选Oracle JDK就是了。因为两者都是免费的,而Oracle JDK功能更多,支持更好,是业界的统一标准。然而,2018年Oracle公司作妖,宣布从2019年1月起,Oracle JDK将收费了!具体的收费策略很复杂,大家的理解也各不相同,这里不再详述。总之一句话,Oracle JDK要收费(注意,是Oracle JDK要收费,不是Java要收费!)。于是大家开始开始转向依然免费的Open JDK。好在Open JDK和Oracle JDK差别极小,大部分应用都不存在兼容性问题。因此,我们选择Open JDK。Open JDK项目本身提供了源代码,各个组织可自行编译发布,从而产生了各种不同的发行版。理论上选择哪一个都行,没有什么区别。<br />        我们另一个需要考虑的是JDK本身的版本。尽管现在JDK 13都已经出来了,但目前业界应用最广泛的依然是JDK 8。目前社区也没有出现大规模升级的意愿。所以在未来一段时间内,JDK 8依然会是最主流、兼容性最好的版本。因此选择JDK 8。

1.3 安装步骤

(1)下载Open JDK

    我们这里选择下载redhat提供的windows版本,由Big Data团队提供。下载地址:\\10.16.83.45\Dept_Folder\ESB。<br />        打开文件浏览器,在地址栏中粘贴上面的下载链接,然后回车,进入目录:![image2020-2-13_10-59-45.png](https://cdn.nlark.com/yuque/0/2020/png/388635/1586418161179-ab123a86-09e1-409c-84fb-21db52c04802.png#align=left&display=inline&height=264&margin=%5Bobject%20Object%5D&name=image2020-2-13_10-59-45.png&originHeight=264&originWidth=1080&size=51556&status=done&style=none&width=1080)<br />        复制上面的java-1.8.0-XXX.zip文件,到自己的一个本地目录。然后解压缩到当前目录。![image2020-2-13_11-3-20.png](https://cdn.nlark.com/yuque/0/2020/png/388635/1586418173303-11b6eaec-2987-423e-8943-57686505a62d.png#align=left&display=inline&height=153&margin=%5Bobject%20Object%5D&name=image2020-2-13_11-3-20.png&originHeight=153&originWidth=961&size=27689&status=done&style=none&width=961)<br />       我们进入解压后得到的文件夹,大致看一下里面有些什么:<br />![image2020-2-13_11-4-18.png](https://cdn.nlark.com/yuque/0/2020/png/388635/1586418178393-d840acca-0145-4fbe-b062-c010c873a62d.png#align=left&display=inline&height=281&margin=%5Bobject%20Object%5D&name=image2020-2-13_11-4-18.png&originHeight=281&originWidth=725&size=28596&status=done&style=none&width=725)<br />        其中比较重要的文件有:
  • bin:内部放置各种命令工具。
  • jre:java执行环境。
  • lib:内部存放JDK所需的核心库。

    (2)配置环境变量

      通常来说,对于Java开发环境,我们需要配置三个环境变量,分别是:
    
环境变量名 用途
JAVA_HOME 指向JDK的安装目录。该环境变量将充当下面两个环境变量的占位符。 上面的JDK解压出来的目录。
CLASSPATH 指定java在编译和运行时,上哪儿去找所需的类。 .;%JAVA_HOME%\lib;
注意这个值有两个部分。第一部分是一个点.,这代表当前工作目录。第二个部分是%JAVA_HOME%\lib,代表JAVA_HOME目录下的lib目录。
Path 指向java各种命令所在目录。 在现有Path基础上添加%JAVA_HOME%\bin。
    新增JAVA_HOME环境变量:<br />![image2020-2-13_11-19-3.png](https://cdn.nlark.com/yuque/0/2020/png/388635/1586418274476-0a8d5b8d-d520-4b16-ae52-4b9c59344e88.png#align=left&display=inline&height=165&margin=%5Bobject%20Object%5D&name=image2020-2-13_11-19-3.png&originHeight=165&originWidth=653&size=10630&status=done&style=none&width=653)<br />        现在CLASSPATH环境变量:![image2020-2-13_11-19-37.png](https://cdn.nlark.com/yuque/0/2020/png/388635/1586418277189-e469c95e-c2f6-4799-a8a5-d27aae49da4f.png#align=left&display=inline&height=165&margin=%5Bobject%20Object%5D&name=image2020-2-13_11-19-37.png&originHeight=165&originWidth=653&size=8823&status=done&style=none&width=653)

    添加Path值:<br />![image2020-2-13_11-20-37.png](https://cdn.nlark.com/yuque/0/2020/png/388635/1586418280780-cdb9ef35-38d2-4c23-ad4a-a8297faa549c.png#align=left&display=inline&height=501&margin=%5Bobject%20Object%5D&name=image2020-2-13_11-20-37.png&originHeight=501&originWidth=527&size=44475&status=done&style=none&width=527)

(3)验证JDK安装配置正确

    打开命令行工具,输入命令java -version,输出如下结果,说明安装成功:<br />![image2020-2-13_11-23-33.png](https://cdn.nlark.com/yuque/0/2020/png/388635/1586418340064-e70651b9-009a-4104-afff-0f2c4969b0fe.png#align=left&display=inline&height=512&margin=%5Bobject%20Object%5D&name=image2020-2-13_11-23-33.png&originHeight=512&originWidth=979&size=28018&status=done&style=none&width=979)

2. 安装Maven

2.1 什么是Maven?

1280px-Maven_logo.svg.png
Maven是一个自动化构建工具,是Apache软件基金会旗下的开源项目。主要用于Java项目,但也可用于C#、Ruby、Scala等其他语言。
Maven主要提供两方面的功能:

  • 依赖管理
  • 构建流程

      Maven教程:[https://www.runoob.com/maven/maven-tutorial.html](https://www.runoob.com/maven/maven-tutorial.html)
    

    2.2 为什么选择Maven?

      Java构建工具有很多,除maven外,常见的有Apache Ant、Gradle等。但是总的来说,目前Maven依然是应用最广泛的构建工具,是事实上的业界标准。
    

    2.3 安装步骤

    (1)下载压缩包并解压

      官方下载链接:[https://maven.apache.org/download.cgi](https://maven.apache.org/download.cgi)<br />![](https://cdn.nlark.com/yuque/0/2019/png/388635/1569827042451-17f52f09-b55c-4bab-9811-187cf8498d07.png#align=left&display=inline&height=184&margin=%5Bobject%20Object%5D&originHeight=184&originWidth=482&status=done&style=none&width=482)<br />       如果不能下载,可访问共享目录:\\10.16.83.45\Public_Folder\Jake.C.Xiao<br />       获取到压缩包后,存![image2020-2-13_13-44-58.png](https://cdn.nlark.com/yuque/0/2020/png/388635/1586418456466-8bb15c52-edfb-4f0f-adaf-9cf3682f767e.png#align=left&display=inline&height=110&margin=%5Bobject%20Object%5D&name=image2020-2-13_13-44-58.png&originHeight=110&originWidth=768&size=11507&status=done&style=none&width=768)储于本地目录,并解压:
    

(2)配置环境变量

    按照通常习惯,我们需要配置以下两个环境变量:
环境变量名 用途
MAVEN_HOME 指向Maven的安装目录。该环境变量将充当下面一个环境变量的占位符。 上面的Maven解压出来的目录。
Path 指向Maven命令所在目录。 在现有Path基础上添加%MAVEN_HOME%\bin。
    新增MAVEN_HOME环境变量:<br />![image2020-2-13_13-51-45.png](https://cdn.nlark.com/yuque/0/2020/png/388635/1586418460831-146068ac-10be-4507-b67b-3b355f11716a.png#align=left&display=inline&height=165&margin=%5Bobject%20Object%5D&name=image2020-2-13_13-51-45.png&originHeight=165&originWidth=653&size=9762&status=done&style=none&width=653)<br />        添加Path值:<br />![image2020-2-13_13-52-52.png](https://cdn.nlark.com/yuque/0/2020/png/388635/1586418463525-2eecfc46-ccfb-4599-8ab4-a0c1124746cc.png#align=left&display=inline&height=501&margin=%5Bobject%20Object%5D&name=image2020-2-13_13-52-52.png&originHeight=501&originWidth=527&size=45067&status=done&style=none&width=527)

(3)验证Maven安装配置正确

    打开命令行工具,输入命令mvn -version,输出如下结果,说明安装成功:<br />![image2020-2-13_13-55-25.png](https://cdn.nlark.com/yuque/0/2020/png/388635/1586418472492-d8d42c30-03ea-4abd-a129-de277d8570a2.png#align=left&display=inline&height=512&margin=%5Bobject%20Object%5D&name=image2020-2-13_13-55-25.png&originHeight=512&originWidth=979&size=35208&status=done&style=none&width=979)

2.4 Maven仓库配置

    公司内部提供了统一的Maven仓库,我们需要将我们的Maven的远程仓库地址修改为公司内部仓库。

(1)拷贝配置文件

    将** `maven解压目录\conf` **下的settings.xml文件拷贝到 `c:\Users\{{User}}\.m2` 目录下。maven读取配置时将优先从`c:\Users\{{User}}\.m2` 目录下读取。我们拷贝配置文件到该目录下,再修改,一来可以避免修改原始配置文件,二来在以后升级maven版本后,不用再配置一次。<br />        复制:<br />![](https://cdn.nlark.com/yuque/0/2019/png/388635/1569827532746-f1df2049-c20f-43d0-9857-34703e211829.png#align=left&display=inline&height=132&margin=%5Bobject%20Object%5D&originHeight=132&originWidth=702&status=done&style=none&width=702)<br />        粘贴:<br />![](https://cdn.nlark.com/yuque/0/2019/png/388635/1569827567855-a5d2ccb4-1cd6-47f0-81bd-adfce14bb485.png#align=left&display=inline&height=112&margin=%5Bobject%20Object%5D&originHeight=112&originWidth=707&status=done&style=none&width=707)

(2)配置远程仓库

    用以下内容覆盖.m2/settings.xml内容:
<?``xml version``=``"1.0" encoding``=``"UTF-8"``?>
<``settings xsi:schemaLocation``=``"[http://maven.apache.org/SETTINGS/1.1.0](http://maven.apache.org/SETTINGS/1.1.0) [http://maven.apache.org/xsd/settings-1.1.0.xsd](http://maven.apache.org/xsd/settings-1.1.0.xsd)" xmlns``=``"[http://maven.apache.org/SETTINGS/1.1.0](http://maven.apache.org/SETTINGS/1.1.0)"
``xmlns:xsi``=``"[http://www.w3.org/2001/XMLSchema-instance](http://www.w3.org/2001/XMLSchema-instance)"``>
``<``profiles``>
``<``profile``>
``<``repositories``>
``<``repository``>
``<``snapshots``>
``<``enabled``>false</``enabled``>
``</``snapshots``>
``<``id``>central</``id``>
``<``name``>newegg-maven</``name``>
``<``url``>[https://a.newegg.org/artifactory/newegg-maven](https://a.newegg.org/artifactory/newegg-maven)</``url``>
``</``repository``>
``<``repository``>
``<``snapshots />
``<``id``>snapshots</``id``>
``<``name``>newegg-maven</``name``>
``<``url``>[https://a.newegg.org/artifactory/newegg-maven](https://a.newegg.org/artifactory/newegg-maven)</``url``>
``</``repository``>
``</``repositories``>
``<``pluginRepositories``>
``<``pluginRepository``>
``<``snapshots``>
``<``enabled``>false</``enabled``>
``</``snapshots``>
``<``id``>central</``id``>
``<``name``>newegg-maven</``name``>
``<``url``>[https://a.newegg.org/artifactory/newegg-maven](https://a.newegg.org/artifactory/newegg-maven)</``url``>
``</``pluginRepository``>
``<``pluginRepository``>
``<``snapshots />
``<``id``>snapshots</``id``>
``<``name``>newegg-maven</``name``>
``<``url``>[https://a.newegg.org/artifactory/newegg-maven](https://a.newegg.org/artifactory/newegg-maven)</``url``>
``</``pluginRepository``>
``</``pluginRepositories``>
``<``id``>artifactory</``id``>
``</``profile``>
``</``profiles``>
``<``activeProfiles``>
``<``activeProfile``>artifactory</``activeProfile``>
``</``activeProfiles``>
</``settings``>
    注意,以上配置只能让你拉取,不能推送。如果有发布的需求,请参考[03. Maven & Gradle](https://confluence.newegg.org/pages/viewpage.action?pageId=64741158)。

(3)修改本地仓库

    Maven下载的包会存放在计算机本地的一个文件夹内,该文件夹称为本地仓库。此后下载包时,将优先从本地仓库获取,没有再从远程仓库获取。默认情况下本地仓库在C盘。为了避免包太多时占用大量C盘空间,我们可以手动修改本地仓库地址。<br />        在.m2/settings.xml中,新增如下配置:
<``settings xmlns``=``"[http://maven.apache.org/SETTINGS/1.0.0](http://maven.apache.org/SETTINGS/1.0.0)"
``xmlns:xsi``=``"[http://www.w3.org/2001/XMLSchema-instance](http://www.w3.org/2001/XMLSchema-instance)" xsi:schemaLocation``=``"[http://maven.apache.org/SETTINGS/1.0.0](http://maven.apache.org/SETTINGS/1.0.0) [http://maven.apache.org/xsd/settings-1.0.0.xsd](http://maven.apache.org/xsd/settings-1.0.0.xsd)"``>

``<!-- localRepository
` ``
The path to the local repository maven will use to store artifacts.<br /> `` <br /> `` Default: ${user.home}/.m2/repository —><br /> <localRepository>D:\maven-repository</localRepository`>

......

3. Intellj Idea

Idea破解:https://shimo.im/docs/68gy9kVrkjtYjGQv/read