详解配置java环境变量那点事儿
来源:互联网 发布:单片机开发系统uv4 编辑:程序博客网 时间:2024/06/05 03:04
写在前面
毫无疑问,配置环境变量是程序猿最重要的基本功之一。但是由于配置环境变量需要了解shell编程的相关知识,很多人往往在配置的过程都是照葫芦画瓢,并不能明白其中的原理。本文主要以配置java环境变量为例,详细讲述在配置开发环境中前因后果。笔者所使用的是ubuntu,windows系统在某些方面会有所差异,但是原理性的东西应该是相同的。
基本步骤
第一步:下载jdk
首先,从orcale官网上下载java的jdk官方版本,笔者的Linux系统下载的是jdk1.8.0_45.tar.gz,这里tar是Linux的打包命令,gz是使用Linux压缩命令的压缩格式。
第二步:jdk解压
然后在下载目录,输入下面的命令,将jdk文件解压到制定的目录/opt:
tar zxv -f jdk1.8.0_45.tar.gz -C /opt
上面z是gzip文件的压缩,解压缩命令,x表示将打包文件extract出来,v是将解压缩过程中涉及到的文件输出到屏幕上,-C是后面接的是输出到指定的目录。如果没有-C的参数,那么默认解压缩到当前目录。
第三步:配置环境变量
接下来,切换至管理员,这里不同linux发行版会有所差别,
#ubuntu使用sudo -i#centos使用root
然后用文本编辑器打开,~/.bashrc,配置环境变量。如果是ubuntu的话,直接使用gedit。
gedit ~/.bashrc
为什么要配置~/.bashrc这个文件呢?原因是Linux在运行之前要首先加载~/.bashrc这个文件进行相关环境变量的配置。
这里重点解释后面四行代码的含义,
(1) JAVA_HOME指的是java的安装目录,这里主要是为了后面表示方便;
(2) JRE_HOME指的是JRE的安装目录,${JAVA_HOME}含义是取出JAVA_HOME这个环境变量的内容,eclipse等java软件运行的时候需要java的运行环境就是JRE;如果没有这一行,你的java程序就不能运行。
(3)至于类路径CLASSPATH则更是一个十分重要的概念,在这个环境变量的设置中,点“.”表示当前目录,javac编译器总是先在当前目录中查找.class文件,如果没有设置当前目录,那么所写的java程序可以编译但是不能运行。后面的lib则是如果你想在编程中引用系统的共享类库,则必须包含;当然可以将自己写的类以包的形式添加到CLASSPATH中,这样就可以共享你写的类的了。具体要怎么实现呢?为了让你有更加直观的认识,还是通过一个例子来解释。
/**假设你的当前目录是/tmp,你在当前目录下创建了一个包,包的名字是example,那*么就意味着你的Example.java文件需要保存在/tmp/example文件夹下,然后你在*~/.bashrc中修改类路径,添加/tmp作为类路径之一,在example文件下面编译,*值得一提的是如果你要运行程序,那么也必须要加上类路径,在此例中就是javac *example.Example,你还可以在其他的类中引用当前的包,通过import exmple;*/package example;public class Example{ .....}
(4)最后一行是更新PATH环境变量的内容,含义就是在原本的PATH之前添加java的二进制文件。这样的原因是因为你在shell中输入的相关的命令,如javac命令,那么系统必须能够从PATH中目录中查找到相关的命令才行。如果没有这一行,那么与jdk相关的命令不能执行。
第四步:
然后通过下面的命令,让你配置的文件成为环境变量。
source ~/.bashrc#或者. ~/.bashrc
第五步:
通过编写下面的hello.java文件,文件名要与类名保持一致。
public class hello{ public static void main(String[] args) { System.out.println("hello java"); }}
然后输入下面命令,如果输出hello java,则证明你的java环境变量配置成功啦。
javac hello.javajava hello
- 详解配置java环境变量那点事儿
- java 找工作那点事儿
- 详解笔记本屏幕的那点事儿
- [spring security 那点事儿]配置方式
- Java程序员:上班那点事儿
- Java程序员,上班那点事儿
- 《Java程序员,上班那点事儿》前言
- 《Java程序员,上班那点事儿》目录
- 转载:《Java程序员,上班那点事儿》
- Java程序员,上班那点事儿
- 《Java程序员,上班那点事儿》
- Java程序员 上班那点事儿 钟声
- 《Java程序员上班那点事儿》总结
- 《Java程序员,上班那点事儿》前言
- 《Java程序员,上班那点事儿》目录
- Java那点事儿总类
- Java高并发那点事儿-目录
- 程序员那点事儿
- 3910: 火车 LCA+并查集
- Activity的生命周期(三)——结合Activity的生命周期理解子类继承父类预加载数据
- Boost MPI send and recv
- 获取UIWebView的高度
- CS0234The type or namespace name 'Mvc' does not exist in the namespace 'Microsoft.AspNet' (are you
- 详解配置java环境变量那点事儿
- 第52课:Hadoop链式MapReduce编程实战
- 心路
- 【年度总结】——踏雪留痕
- 使用批处理清理vs工程项目
- 3207: 花神的嘲讽计划Ⅰ 主席树+hash
- 番茄助手破解问题
- 半年总结—沉淀就是力量
- 21. Merge Two Sorted Lists