Java开发前,我们需要了解哪些概念?| IDE大行其道,还需要学配置环境变量吗?

这张图不错哦

文 | 张彦奇

JDK、JRE、JVM这些都代表什么?不上度娘,如何自己配置环境变量?如何自己验证环境变量是否配置成功?

Java初学者在开始开发前,往往需要先完成开发的准备工作——配置我们的开发环境。

配置开发环境我们知道需要下载JDK,安装JDK,配置环境变量。然而好多新手开发者连JDK都不知道什么意思更别提让他自己配置环境变量了。针对这些初学者一定会遇到的问题,我写了这篇文章,各位如果觉得看完之后对您有帮助,不妨帮我点个喜欢或者分享给需要这些知识的人。

下载安装JDK之前我们要明白:JDK、JRE、JVM这些都代表什么?

我们新接触到一个陌生的领域,对这方面的各种知识一片空白也是在所难免。但是随着我们学习时间的增长,对于这些知识肯定也会烂熟于心,希望对开发感觉到很难的初学者能够明白:“合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。”

说回正题,我们配置开发环境的第一步就是下载安装JDK,我们先不忙着下载安装它,应该先来看看这到底是个什么东西。

JDK的全称是Java SE Development Kit,即Java标准版开发包,是Sun提供的一套用于开发Java应用程序的开发包,它提供了编译、运行Java程序所需的各种工具和资源,包括Java编译器、Java运行时环境,以及常用的Java类库等。

引用部分很直观明了的为我们说明了JDK到底是什么,包含了什么。也就是说我们没有JDK就无法开发,因为我们开发所需要用到的东西都在这个JDK里面包含着,所以我们需要JDK。


JDK概念图

我觉得这个图可以很好的帮助我们理解JDK,JRE和JVM的概念,JDK是最大的那个括号,它包含了图里所示的所有东西,在它旁边还有一个比它稍小一点的一个叫做JRE的东西。

JRE是Java Runtime Environment缩写,指Java运行环境,是Sun的产品。运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。   

在这里,引入我们的第二个概念JRE——Java程序运行环境,它是运行Java程序的必需条件。JRE旁边还有一个括号,上面写着JavaSE APIs,这就是Java的核心类库,运行Java程序时需要这些核心类库的支持。而在JavaSE APIs还有一个没被括号括起来的东西,这个就是Java跨平台最重要的东西了——Java虚拟机,简称JVM。

这里引入我们的三个概念——JVM,先来看看它的定义。

JVM是Java Virtual Machine(Java虚拟机)的缩写,Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。Java的代码都是放在JVM上面执行的所以与平台没有关系,无论你是Windows,Mac还是Linux只要有Java的运行环境你都无需修改任何代码进行运行,这就是所谓“一次编写,到处运行。”

好了现在我们来大致的捋一捋,JDK>JRE>JVM,他们三个是包含关系。我们所有的Java程序经过编译器编译成字节码都会交给JVM来解释执行,当然运行Java程序不仅需要核心虚拟机,还需要其他的类加载器、字节码校验器以及大量的基础类库,这些东西就是加起来就变成了JRE,所以如果仅仅执行Java程序我们不需要用到JDK,有JRE就够了。当我们需要开发的时候就得用上一些JRE里所不包含的开发类库和工具,这些东西全部加起来才组成了JDK。

上面的我所讲的您看懂了吗?没看懂就再看一遍吧!

让我们开始下载安装JDK吧

下载JDK我们可以直接去百度搜索JDK关键字,去往Oracle的官网下载。


我接受许可协议

进入下载页面后我们点击“接受许可协议”,然后根据自己的系统版本就行下载安装即可。注:x64代表64位操作系统,x86代表32位操作系统。

因为我使用的Windows系统所以就使用Windows平台为例了,下载完成后得到一个后缀名为.exe的文件,双击打开安装页面。


JDK安装

一般我都是全部安装,这里需要你记住自己的JDK路径,默认路径也不难记,我一般都是使用这个路径的,日后你为自己的IDE手动添加JDK的时候需要知道自己的JDK路径在哪。

下一步等待安装完成然后关闭即可。

安装完JDK之后你就可以按下win+R输入cmd回车进入到命令行操作界面,然后输入“java –version” 按下回车出现如下界面就是安装完成了,这个命令是显示当前电脑上JDK的版本号。

注:java后面有个空格然后接-version。


java -version

下载安装JDK到这里完成,现在我们说说配置环境变量。



IDE大行其道的今天,为什么还要学习配置环境变量?

Java初学者,无论有没有老师带,基本上都会遇到自己手动配置环境变量的问题,好多初学者包括我那时候都不知道怎么配置,老师也是让我们去百度搜索按照上面的配置,百度搜索固然方便,可我一直想明白到底为什么要这样配置,后来我明白是因为编译问题后又出现了一个问题如今我们写代码都是用的IDE,IDE上面本身即有编译工具,到底还没有必要去配置环境变量呢?

我的意见是:要。艺多不压身,日后想教后辈了也可以说说这里面的道理。

配置环境变量,先明白为什么要配置,再明白什么是环境变量,最后学习如何去配置。

在我的上篇文章——Java编程前,我们要明白的事 的末尾我简单说了一下Java程序的执行过程,不知道的同学可以点进去看一下。

执行Java程序时,我们需要先将Java源文件用javac工具编译成字节码,再执行java命令由JVM加载执行。这两个工具在安装JDK时都放在了JDK目录下的bin目录下。而在没有配置环境变量的电脑上在DOS窗口下输入这两个命令对Java源文件进行编译则会提示您“'xxx'不是内部或外部命令,也不是可运行的程序或批处理文件”的提示。


示例

这是因为Windows操作系统在运行任何命令的时候会根据系统的Path环境变量来查找命令。Path环境变量的值是一系列路径,Windows操作系统将在这一系列的路径中依次查找命令,如果能找到这个命令,则该命令是可执行的;找不到则会出现上面的提示。

因为在系统的环境变量中找不到javac工具,所以我们就无法进行编译,无法编译我们也就无法运行这个程序了。这就是我们为什么了要配置环境变量:

为了能操作系统能够找到Java工具的所在路径,从而使用Java工具。

环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如Windows和DOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。

比如说:我们打开Win+R然后输入notepad,就会打开记事本,因为notepad这个工具是在Windows记事本的应用名字,在我们不给系统notepad这个工具所在的路径时候,系统就会去系统的Path环境变量中的路径中一个个去找,notepad记事本啊计算器啊这些小工具都在如图所示的目录下。

Path环境变量目录

如何来配置环境变量?

其实前面讲了一大段基础知识,但真到实操的时候,就属这部分知识最简单。

首先我们需要知道自己的JDK目录下的bin路径,如果觉得手打麻烦的话可以进入JDK目录下的bin路径,然后单击一下路径窗口,右键复制就行了。

右键一下复制

知道我们这个路径后就要去设置环境变量了,右击桌面上“此电脑”图标,出现右键菜单;单击“属性”菜单项,然后点击左侧的高级系统设置,在出现的页面上打开环境变量,然后单击一下系统环境变量中的Path,点击下面的编辑,然后新建,把你的bin路径复制进去即可。

注:最后别忘了点确定。

我的是win10
点击环境变量
点一下Path,然后点击编辑
点击新建,把目录复制进去即可

以上就是配置环境变量了,很简单,可能有人会说网上不是这样教的啊,原理都是一样的原理,这是最简单直接的办法,网上可能又说要建javahome或者pathhome只是为了让你后来万一JDK目录了,你修改环境变量的时候能起到一个容错作用。作用都是给系统一个路径,让它能查到你的Java工具路径。

我上面用的是win10系统,页面和win7系统有点稍稍不同,大部分都一样,最大的不同应该是新建环境变量部分了,win7系统Path环境变量是在一行并没有像win10这样分成一行一行的,但是添加方法都是一样的,注意路径和路径之间要用英文 ;分隔符分开。

如何验证自己是否成功配置环境变量?

打开cmd,输入javac  按下回车键,出现如下界面即为成功,找不到命令就是失败。

javac

上面都是在讲的都是Windows环境下,Linux系统下配置如何配置呢?因为我没有装Linux系统所以也无法给大家实操了,下面给大家一段文字解说,Linux用户可以照着这个格式进行配置。

在Linux上设置环境变量 进入当前用户的home路径下,然后在home路径下输入如下命令: ls -a 该命令将列出当前路径下所有的文件,包括隐藏文件,Linux平台的环境变量是通过.bash_profile文件来设置的。
使用无格式编辑器打开该文件,在该文件的PATH变量后添加:/home/yeeku/Java/jdk1.7.0/bin,其中/home/yeeku/Java/jdk1.7.0/是笔者的JDK安装路径。
修改后的PATH变量设置如下所示: # 设置PATH环境变量 PATH=.:$PATH:$HOME/bin:/home/yeeku/Java/jdk1.7.0/bin
Linux平台与Windows平台不一样,多个路径之间以冒号(:)作为分隔符,而$PATH则用于引用原有的PATH变量值。
完成了PATH变量值的设置后,在.bash_profile文件最后添加导出PATH变量的语句,
如下所示: # 导出PATH环境变量 export PATH 重新登录Linux平台,或者执行如下命令: source .bash_profile 两种方式都是为了运行该文件,让文件中设置的PATH变量值生效。



终于写完了,没想到这么累,也就是今天休息才有这么多时间,从下午写到晚上,除去引用写了三千字吧,希望能给大家增长知识。如果有任何疑问可以私信或者在下面评论区评论,觉得不错的也可以点个喜欢加个关注。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,601评论 18 139
  • 总结下:无论什么情况,在环境变量中设置java_home,都是没错的,有必要的 windows下,dk 1.4以后...
    我是陈君本阅读 2,365评论 0 11
  • 最近在做一个项目时,客户要求实现站内全文检索功能,因而接触到Solr这款开源的企业级全文搜索 引擎。官网:http...
    熊颀阅读 1,597评论 0 3
  • 河畔夜景
    雪山海阅读 351评论 0 0
  • 东北四月春始盛,夜雨勾人将入梦。 新裁细叶映湖影,桃花未尽梨花争。
    清竹渔客阅读 251评论 0 0