我们刚开始学习java,都会面临编程路上的第一个小怪兽:配环境变量。

网上很多教程给了我们很多的参考,但我们是否有想过为什么要这么配呢?下面我就是想重点探讨一下为什么?并且希望以后你们不但能配,还知道这么配,不至于被这个傲娇兽耽误了学习的兴趣233

一、JAVA_HOME

1.这个配置主要是为了方便你后续的一些更改操作,也可以说是满足所谓的“归一原则”。

列如:你将一下东西(假如 书)放到了一个蓝色的箱子里,而蓝色的箱子你现在把它放在了墙角落。可那一天,你想更改一下,房间的布局了,将箱子移到了 厕所(⊙﹏⊙)b,那你在想要找书的时候,你会怎么找呢?是去墙角吗?不是吧,是直接去找蓝色的箱子。

那现在你或许就懂了,蓝色的箱子就是“JAVA_HOME”,而里面的书,就是你想要放入的东西(“你jdk的安装目录”)。

2.那当你理解这个蓝色箱子的用途后,你就会发现,它是可有可无的,但我们一般配它是为了更方便的使用,你总不希望每天抱着书走吧……

现在我们把它删掉

删掉了

将path路径写成绝对路径

发现了吗?,依然是能运行的啊

那么竟然提到了PATH,那下面我们就来讲讲PATH的用途及配置好了

二、PATH的配置

path有什么用呢?

1.告诉操作系统去哪里找你的java相关程序

2.便于你可以直接使用java指令(因为被操作系统找到了呗)

怎么配置:

1.就像我上图一样将它配成“你安装的jdk中的bin目录下”,为什么是bin目录下呢?因为它是工具包的目录,java中的工具都是在这个目录下,列如:你们以后会非常熟悉的javac.

编译指令

2.设置成相对路径,这就涉及到前面的JAVA_HOME了,也就是说为了方便,你可以直接通过箱子找到你要的,至于具体的书是什么,你就在箱子中好好翻找吧

创建一个JAVA_HOME,另外注意一个小细节,变量值的后面 不要加 “ ;”,因为你加了分号,就相当于告诉操作系统搜寻结束了,你要光找到箱子,这样没什么问题,可关键是你要找的是箱子里面你具体想要的书啊,当然,你们也可以加一下分号试一下

配置PATH

搞定!

好,大家也可能发现了,我没有配置CLASSPATH,然而jdk已经可以正常使用了,为什么呢?

三、CLASSPATH

其实你不配它也没有多大的影响,因为java虚拟机在寻找.class文件中会默认先从不目录下找,所以这不一下就给提溜出来了。一般别人会让你将

CLASSPATH=“.;”配置成这样,是因为 “.” 就是寻找本目录下的意思,你这样配置当然更为严谨一些。

也有人这样配

CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;‪

这主要是因为在后面的学习中,我们会使用到java很多的第三方工具包,而这个包大多就在上面配置的路径下,所以当你们的程序涉及到这些的时候,classpath会指引jvm或编译器寻找到他们所想要的工具。当然你们也可以将自己将要使用的包的路径添加到 它的后面。

这也是配置classpath的意义。

发散思想:

1.你们有注意到 我们安装jdk的时候,还提示我们安装了一个jre吗?而jdk中是有jre的,这不是 多此一举吗?

就是多此一举啊(⊙﹏⊙)b

jre主要是给我们提供一个使用java的运行环境,jvm,java.exe也包含在这里面,然而,我们作为一个开发者并不满足于只是要使用,还要编译,所以,我们需要jdk中编译器以及工具包。所以啊,你把jre删了也没问题……我没让你删jdk中的jre啊,删错了别找我233

2.其实classpath真的不需要配啊,因为你们编写程序所要使用到的第三方软件(eclipse……)都已经默认的将你们的classpath给补全了,所以你即使以后要使用到第三方包,也仅仅只需要导入你使用的软件就好了。

3.欢迎补充:)

关于java“配置环境变量”的那些事的更多相关文章

  1. java 配置环境变量

    使用java编程首先需要安装jdk,然后还需要给你的电脑配置环境变量,下面就用图文演示如何配置环境变量: 1.右键我的电脑 -> 属性 2.点击“高级系统设置” 3.点击“环境变量” 4.在系统 ...

  2. Java配置环境变量

    首先,你应该已经安装了Java 的 JDK 了,笔者安装的是:jdk-7u7-windows-x64 接下来主要讲怎么配置 Java 的环境变量 1.进入“计算机”的“属性”选项后如图 2.选择“高级 ...

  3. Java配置环境变量、方法和原因

    首先,你应该已经安装了 java 的 JDK 了,笔者安装的是:jdk-7u7-windows-x64 接下来主要讲怎么配置 java 的环境变量,也是为了以后哪天自己忘记了做个备份 1.进入“计算机 ...

  4. 2015 11 26 java 配置环境变量

    使用java软件, 须进行改变配置环境变量.需要2步. 第一,在电脑中找到配置环境变量的位置: 我的电脑,属性,高级,环境变量. 第二,进行添加两个变量,更改一个变量: 1,变量名:JAVA_HOME ...

  5. java配置环境变量-及原因

    为什么java要配置环境变量? 那就要从java的编译和解析过程说起 java文件的编译和解析过程 一.一个hellow.java文件,要经历先编译(变成hellow.class),再解析(解析成机器 ...

  6. 从java的开始,java概述,java配置环境变量

    一.java开发入门 java 概述   Java划分为三个技术平台:JavaSE(标准版,含Java基础类库),JavaEE(企业版,技术平台),JavaME(小型版,小型产品.嵌入式设备) Jav ...

  7. java配置环境变量,无法也行javac问题

    最近换了公司,搭建开发环境的时候出了点小差错,写篇随笔记录下,下载jdk的时候要选择符合自己电脑的jdk版本,位数. 笔者之前下载的时候没注意下了个32bit的jdk,开发用eclipse的时候打不开 ...

  8. Java 配置环境变量教程

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...

  9. java配置环境变量 jdk1.8

    1.首先第一步安装JDK window系统安装java 下载JDK 首先我们需要下载java开发工具包JDK,下载地址:http://www.oracle.com/technetwork/java/j ...

随机推荐

  1. 一模 (1) day1

    第一题:(水题) 题目大意:求出n个  X% (X是小于等于2位的整数) 的乘积,去掉末尾的0: 解题过程: 1.直接 把整数乘好,然后确定小数点的位置,去掉多余的0 输出即可. 第二题:(搜索题) ...

  2. wpf custom control

    最近在做WPF,记录一下自定义控件的制作过程,源码请点击:源码. 1.目标 实现一个如图所示的可增减的数字框: 2.先画Template 可以在Generic.xaml中画,也可以用MergedDic ...

  3. 【C语言学习】-03 循环结构

    本文目录 循环结构的特点 while循环 do...while循环 for循环 回到顶部 一.循环结构的特点 程序的三种结构: 顺序结构:顺序执行语句 分支结构:通过进行一个判断在两个可选的语句序列之 ...

  4. awt可视化界面上传数据到mysql,jsp通过jdbc方式查询数据库,并将结果打印在网页上

    今天尝试写一个小demo实现下之前看过的代码,目的了解不同文件的数据访问,掌握如何获取前台数据,如何将数据库的数据在前端页面展示. awt可视化界面可已实现提交数据到数据库,也可查询数据在控制台打印. ...

  5. eclipse web项目实际工程路径对应

    src/1.properties ---->实际路径 /WEB-INF/classes/1.propertiessrc/com.ayong.one/2.properties /WEB-INF/c ...

  6. iOS中类方法的作用

    类方法,这意味着你将它发送给类,而不是对象实例. 因为不是发送给一个实例,所以你不能使用任何实例变量,你只能做一些通用性的事情. 实际上类方法只用于两种情况: 1.创建事物,比如创建一个特殊格式的字符 ...

  7. 解决使用IIS5.0配置的FTP服务器,客户端浏览器访问时无法获取目录列表的问题。

    我在windows xp sp3下利用iis构架了FTP服务器,允许且只允许匿名用户登陆.但刚开始配置好后,不管是使用命令行模式还是使用浏览器都发现无法访问. 于是怀疑防火墙屏蔽端口所致,果不其然,在 ...

  8. FreebuF黑客专访系列之吴翰清(刺):接下来几年,有两样东西必定会火

        注:吴翰清——中国网络安全圈最具影响力的人物之一.西安交大少年班毕业,大学期间创办民间组织幻影,阿里巴巴集团最年轻的高级安全专家,创新工场安全宝任联合副总裁,热门公众微信“道哥的黑板报”幕后作 ...

  9. type safe printf

    在书里看到的,摘录如下: #include <iostream> #include <stdexcept> template<class T> struct is_ ...

  10. Repeater分页

    void BindData()        {            PagedDataSource pds = new PagedDataSource();                     ...