Java入门到实践系列(2)——Java环境搭建
一、上集回顾
在《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环境搭建的更多相关文章
- Java入门到实践系列(1)——Java简介
一.Java的发展历史 Java是由SUN公司的开发人员James Gosling及其领导的一个开发小组与1995年开发并推出的一门高级编程语言.经过二十几年的发展已经成为最受程序员欢迎.使用最为普遍 ...
- 【转】RHadoop实践系列之一:Hadoop环境搭建
RHadoop实践系列之一:Hadoop环境搭建 RHadoop实践系列文章,包含了R语言与Hadoop结合进行海量数据分析.Hadoop主要用来存储海量数据,R语言完成MapReduce 算法,用来 ...
- php从入门到放弃系列-01.php环境的搭建
php从入门到放弃系列-01.php环境的搭建 一.为什么要学习php 1.php语言适用于中小型网站的快速开发: 2.并且有非常成熟的开源框架,例如yii,thinkphp等: 3.几乎全部的CMS ...
- MyBatis学习系列一之环境搭建
目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 学习一个新的知识,首先做一个简单的例子使用一下,然后再逐步深入.MyBat ...
- Java入门之JDK的安装和环境变量的配置
Java的版本 1. Java SEjava se 以前称为J2SE.它允许开发和部署在桌面.服务器.嵌入式环境和实时环境中使用的 Java 应用程序.Java SE是基础包,但是也包含了支持 Jav ...
- 【java开发】ubuntu常用命令及环境搭建
学习第一天,今天内容相对简单,主要就是ubuntu一些常用命令及常规操作,后续涉及到环境的搭建,也会在本文再更. ubuntu环境搭建 第一种 也是最简单最方便的 通过vm虚拟机软件,下载iso镜像进 ...
- [Java] SSH框架笔记_框架分析+环境搭建+实例源码下载
首先,SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活.易于扩展的多层Web应用程序. 集成SSH框 ...
- 基于Selenium2+Java的UI自动化(1) - 原理和环境搭建
一.Selenium2的原理 Selenium1是thoughtworks公司的一个产品经理,为了解决重复烦躁的验收工作,写的一个自动化测试工具,其原理是用JS注入的方 式来模拟人工的操作,但是由于J ...
- 【Java探索道路安全系列:Java可扩展的安全架构】一间:Java可扩展的安全体系结构开始
笔者:郭嘉 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells github:https://github.com/AllenWell [ ...
随机推荐
- 【Nginx】如何按日期分割Nginx日志?看这一篇就够了!!
写在前面 Nginx是没有以日期格式作为文件名来存储的,也就是说,Nginx不像Tomcat,每天自动生成一个日志文件,所有的日志都是以一个名字来存储,时间久了日志文件会变得很大.这样非常不利于分析. ...
- proxy是什么
普通的因特网访问是一个典型的客户机与服务器结构:用户利用计算机上的客户端程序,如浏览器发出请求,远端WWW服务器程序响应请求并提供相应的数据.而Proxy处于客户机与服务器之间,对于服务器来说,Pro ...
- Ethical Hacking - Web Penetration Testing(1)
How to hack a website? An application installed on a computer. ->web application pen-testing A co ...
- Ethical Hacking - GAINING ACCESS(2)
Server Side Attacks - INFORMATION GATHERING Need an IP address. Very simple if target is on the same ...
- Ethical Hacking - NETWORK PENETRATION TESTING(18)
Session Hijacking What if the user uses the "remember me" feature? If the user uses this f ...
- Shell基本语法---if语句
if语句 格式 #单分支 if [ 条件判断 ]; then 执行动作 fi if [ 条件判断 ]; then 执行动作 else 执行动作 fi #多分支 if [条件判断]; then 执行动作 ...
- [redis] -- 持久化机制篇
快照(snapshotting)持久化(RDB) 该方式是redis默认 持久化方式 Redis可以通过创建快照来获得存储在内存里面的数据在某个时间点上的副本.Redis创建快照之后,可以对快照进行备 ...
- Python 3.x 安装PyQt5
一. 安装PyQt5 官方要求Python版本:Python >=3.5 打开命令行 输入 pip install PyQt5 PyQt5安装成功 安装完成功PyQt5后发现没有design ...
- git常用命令操作
git常用命令 #查看配置 git config -l #查看系统config git config --system --list #查看当前用户(global)配置 git config --gl ...
- STL set
写在前面:STL大法好! 容器set,可以实现排序,插入元素不能重复(所以可能插入失败) 接下来我们看一下set的基本用法 begin() 返回set容器的第一个元素的地址 end() 返回s ...