一、上集回顾

在《Java入门到实践系列(1)——Java简介》中提到过,Java程序是运行在Java虚拟机的,也展示过下面这张图。

JDK:Java程序开发工具包。

JRE:Java运行时环境。

JVM:Java虚拟机。

从这张图可以看出,JDK包含JRE,JRE包含JVM。而我们作为Java开发人员,肯定是要安装JDK的啦。

二、JDK的安装

JDK1.8官网下载地址:

https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

以下截图是Windows10为例的安装步骤

1、下载jdk安装包

害,很久没有从下载了,这次特地删了重新安装。原来的官网下载地址也不好使了,现在下载还要注册登录Oracle账号,有丶麻烦!

2、安装

双击打开安装包

我下载的文件名是jdk-8u261-windows-x64.exe,这里的8是大版本,就是我们俗称的jdk1.8。u是Update的首字母,261呢是小版本,也就是jdk1.8的261次更新。

上篇文章中也提到,我们在企业中用到的还是jdk1.8为主,所以我们只需要下载1.8版本的,至于后面的小版本,不是很重要,因为每次的重大语法更新之类的,都是在大版本里更新的,小版本主要是修复bug的。

直接点击下一步

安装路径用默认的就行啦~

剩下的一路傻瓜式安装,就不截图了,安装路径默认就行啦!

三、环境变量的配置

直接上图

步骤:右键我的电脑-》属性-》高级系统设置-》环境变量-》'用户变量'底下的新建按钮

变量名:JAVA_HOME

变量值:JDK的安装路径,如果你在安装时修改了安装路径,按你实际的来

这里略微解释一下为什么我放在上面的用户变量而不是系统变量。

系统环境变量,对所有用户起作用,而用户环境变量只对当前用户起作用。

加在系统环境变量,可能要重启才会生效。而用户变量可以不用重启!我体验过!

添加完Java之家(JAVA_HOME)的环境变量之后,要在path的环境变量下添加"%JAVA_HOME%\bin",就是引用了我们刚刚定义的JAVA_HOME那个环境变量的值。

好像完事了呀!!!那。。怎么知道有没有安装成功呢?

四、验证是否安装成功

打开cmd命令行。这个都会吧???不会百度一下~

输入java -version

显示出了版本号就算安装成功啦~

为啥我要把HotSpot给框起来呢?这里就是区别你安装的是OpenJdk还是OracleJdk的标志。详细看下方科普!

科普

其实我在企业中的真实开发,有碰到过jdk小版本不兼容的问题,这里也跟大家分享一下。比如我同事使用的是jdk1.8.0_91,而我是jdk1.8.0_212。项目在他的电脑上可以正常运行,但是在我电脑上运行报错(可能这里你对这些还没有什么概念,后期会介绍编译异常和运行时异常)。

当时就觉得很奇怪,Java的版本更新应该是向前兼容的呀。。为什么91版本可以,212版本不行。后来一顿百度,发现是他是OpenJdk,而我是OracleJdk!

主要原因是我的OracleJdk不支持我那个项目的某些东西,导致我无法启动项目。但是大家不要惊慌,也不要去纠结是下载OracleJdk还是OpenJdk。

大兄弟,随便用就完事儿了嗷!

一般你碰不到这个问题,毕竟我那个是少数情况下发生的。

OpenJDK和OracleJDK有什么区别和联系?

科普贴:

https://blog.csdn.net/bisal/article/details/104832084/

讲的比较详细,包括了如何查看自己的版本是OpenJDK还是OracleJDK的方法。

Java入门到实践系列(2)——Java环境搭建的更多相关文章

  1. Java入门到实践系列(1)——Java简介

    一.Java的发展历史 Java是由SUN公司的开发人员James Gosling及其领导的一个开发小组与1995年开发并推出的一门高级编程语言.经过二十几年的发展已经成为最受程序员欢迎.使用最为普遍 ...

  2. 【转】RHadoop实践系列之一:Hadoop环境搭建

    RHadoop实践系列之一:Hadoop环境搭建 RHadoop实践系列文章,包含了R语言与Hadoop结合进行海量数据分析.Hadoop主要用来存储海量数据,R语言完成MapReduce 算法,用来 ...

  3. php从入门到放弃系列-01.php环境的搭建

    php从入门到放弃系列-01.php环境的搭建 一.为什么要学习php 1.php语言适用于中小型网站的快速开发: 2.并且有非常成熟的开源框架,例如yii,thinkphp等: 3.几乎全部的CMS ...

  4. MyBatis学习系列一之环境搭建

    目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 学习一个新的知识,首先做一个简单的例子使用一下,然后再逐步深入.MyBat ...

  5. Java入门之JDK的安装和环境变量的配置

    Java的版本 1. Java SEjava se 以前称为J2SE.它允许开发和部署在桌面.服务器.嵌入式环境和实时环境中使用的 Java 应用程序.Java SE是基础包,但是也包含了支持 Jav ...

  6. 【java开发】ubuntu常用命令及环境搭建

    学习第一天,今天内容相对简单,主要就是ubuntu一些常用命令及常规操作,后续涉及到环境的搭建,也会在本文再更. ubuntu环境搭建 第一种 也是最简单最方便的 通过vm虚拟机软件,下载iso镜像进 ...

  7. [Java] SSH框架笔记_框架分析+环境搭建+实例源码下载

    首先,SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活.易于扩展的多层Web应用程序. 集成SSH框 ...

  8. 基于Selenium2+Java的UI自动化(1) - 原理和环境搭建

    一.Selenium2的原理 Selenium1是thoughtworks公司的一个产品经理,为了解决重复烦躁的验收工作,写的一个自动化测试工具,其原理是用JS注入的方 式来模拟人工的操作,但是由于J ...

  9. 【Java探索道路安全系列:Java可扩展的安全架构】一间:Java可扩展的安全体系结构开始

    笔者:郭嘉 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells github:https://github.com/AllenWell [ ...

随机推荐

  1. vue 修改浏览器标题

    主要思路: 1.可以从路由获取当前页面的标题,再通过document.title设值,或者在最外层的index.html页面添加<title>标签 import router from ' ...

  2. Python 爬取异步加载的数据

    在我们的工作中,可能会遇到这样的情况:我们需要爬取的数据是通过ajax异步加载的,这样的话通过requests得到的只是一个静态页面,而我们需要的是ajax动态加载的数据! 那我们应该怎么办呢??? ...

  3. JVM系列6-GC算法

    一.如何判定垃圾? 1.1.Reference Count引用计数法:引用计数count=0的对象 1.2.Root Seaching根可达法:从root开始不可达的对象 常见的可做GC roots的 ...

  4. Qt_IO系统_文件

    主要参考: devbean.net 豆子的博客 参考书:<QtCreator 快速入门>第三版 目录 QFile 如何使用QFile QFile 和QFileInfo Demo 文件操作是 ...

  5. CAS底层原理与ABA问题

    CAS定义 CAS(Compare And Swap)是一种无锁算法.CAS算法是乐观锁的一种实现.CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B.当预期值A和内存值V相同时,将内存值V修 ...

  6. DEBUG ArrayList

    1,ArrayList面试必问 说说ArrayList和LinkedList的区别? ArrayList基于数组实现,LinkedList基于链表实现,不同的数据结构决定了ArrayList查询效率比 ...

  7. 【JVM之内存与垃圾回收篇】方法区

    方法区 前言 这次所讲述的是运行时数据区的最后一个部分 从线程共享与否的角度来看 ThreadLocal:如何保证多个线程在并发环境下的安全性?典型应用就是数据库连接管理,以及会话管理 栈.堆.方法区 ...

  8. Git 推送到远程仓库

    github:https://github.com/ 国内的:https://gitee.com/ (和Github非常相似的) 一.Http方式进行推送 右击同步,配置远端,将URL替换成远程仓库的 ...

  9. socket链接

    服务端: package com.batch.service.impl; import java.io.BufferedReader; import java.io.BufferedWriter; i ...

  10. AI面试之SVM推导

    SVM现在主流的有两个方法.一个是传统的推导,计算支持向量求解的方法,一个是近几年兴起的梯度下降的方法. 梯度下降方法的核心是使用了hinge loss作为损失函数,所以最近也有人提出的深度SVM其实 ...