Java 环境变量配置详细讲解

一、Windows平台

1.安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为D:\Java\jdk1.5.0_07;

2.安装完成后,右击“我的电脑”,点击“属性”;

3.选择“高级”选项卡,点击“环境变量”;

4.在“系统变量”中,设置3项属性,JAVA_HOME, PATH, CLASSPATH(大小写无所谓),若已存在则点击“编辑”,不存在则点击“新建”。

5.JAVA_HOME指明JDK安装路径,就是刚才安装时所选择的路径D:\Java\jdk1.5.0_07,此路径下包括lib,bin,jre等文件夹(此变量最好设置,因为以后运行tomcat,eclipse等都需要依*此变量)。

Path使得系统可以在任何路径下识别java命令,设为:

Path:%JAVA_HOME%\bin;

CLASSPATH为java加载类(class

or lib)路径,只有类在classpath中,java命令才能识别,设为:

classpath:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar(要加.表示当前路径)

%JAVA_HOME%就是引用前面指定的JAVA_HOME(D:\java\jdk1.5.0_08);

Tomcat按照路径讲解((假定你的tomcat安装在d:\tomcat):):

CATALINA_HOME=D:\Tomcat6.0;

CATALINA_BASE=D:\Tomcat 6.0;

6.“开始”->;“运行”,键入“cmd”;

7.键入命令“java

-version”,“java”,“javac”几个命令,出现画面,说明环境变量配置成功;

二、Linux平台

以Ubuntu为例。

(1)根据当前操作系统的版本选择下载jdk安装包。

(2)将准备好的安装包放到特定目录下。

sudocp /home/chj/jdk-8u101-linux-i586.gz /opt/(注意64位的Ubuntu需要安装64位的Java开发包)

(3)输入指令解压。

sudocd /opt

sudotar –xf jdk-8u101-linux-i586.gz

(4)添加环境变量。

1.界面版Linux:

sudogedit /etc/environment

设置环境变量如下格式:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/jdk1.8.0_101/bin"

JAVA_HOME="/opt/jdk1.8.0_101"

JRE_HOME=${JAVA_HOME}/jre

CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

应用环境变量:

sudosource /etc/environment

2.服务器版Linux:

sudo

vim /etc/profile (如果不能启动vim,可以使用apt-get

install vim安装vim)

添加环境变量设置:

#setjava environment

exportJAVA_HOME=/opt/jdk1.8.0_73

exportJRE_HOME=${JAVA_HOME}/jre

exportCLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

exportPATH=${JAVA_HOME}/bin:$PATH

配置默认JDK:

sudoupdate-alternatives --install /usr/bin/java java /opt/jdk1.8.0_73/bin/java 300

sudoupdate-alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_73/bin/javac300

sudoupdate-alternatives --config java

应用环境变量:

sudosource /etc/ profile

(5)检查安装是否成功。

输入java –versionjavacjava等指令,观察系统配置的情况。

三、批处理实现环境变量设置

下面分别说明三个环境变量在Windows和Linux下如何设置,不过在此之前,我们需要做个假设。假设JDK在Windows下的安装路径是C:\jdk\,在Linux下的安装路径是/usr/local/jdk/。那么,安装后的JDK至少会包括如下内容:

C:\jdk (/usr/local/jdk)

|-- bin

|-- demo

|-- include

|-- jre

| |-- bin

| `-- lib

`-- lib

*****在Windows下设置

Windows下使用set命令设置环境变量,为了使每一次启动计算机都设置这些环境变量,应该在系统盘根目录下的autoexec.bat文件中进行设置,如:

set JAVA_HOME=C:\jdk

setPATH=%JAVA_HOME%\bin;C:\Windows;C:\Windows\Command

set CLASSPATH=%JAVA_HOME%\jre\lib\rt.jar;.

有些版本的Windows不能用%变量名%来替换环境变量的内容,那么就只好直接写C:\jdk而不是%JAVA_HOME%了。另外,C:\Windows和C:\Windows\Command是Windows会自动加入路径的,所以可以从设置中去掉。如果在autoexec.bat中已经设置了PATH,那只需要将%JAVA_HOME%\bin加到原来设置PATH的那条语句中就行了。

CLASSPATH也可以根据需要设置或者加入其它的路径,比如你想把自己写的一些类放在C:\java中,就可以把C:\java也添加到CLASSPATH中去,set

CLASSPATH=%JAVA_HOME%\jre\lib\rt.jar;C:\java;.。

注意,在CLASSPATH中包含了一个“当前目录(.)”。包含了该目录后,就可以到任意目录下去执行需要用到该目录下某个类的Java程序,即使该路径并未包含在CLASSPATH中也可以。原因很简单:虽然没有明确的把该路径包含在CLASSPATH中,但CLASSPATH中的“.”在此时就代表了该路径,如:

假设在C:\java目录下有可运行的类HelloJava.class,那么

C:\> set

CLASSPATH=C:\jdk\jre\lib\rt.jar;. //设置CLASSPATH环境变量,注意最后有一个“.”

C:\> cd java //转到C:\java目录

C:\java> java

HelloJava //运行HelloJava

Hello, Java. //运行结果

C:\java> _

****在Linux下设置

Linux下使用“变量名=变量值”设置变量,并使用export命令将其导出为环境变量。为了使每一次登录都自动设置好这些变量,你需要在~/.bash_profile里或者~./bashrc里进行设置,如

exportJAVA_HOME=/usr/local/jdk

exportPATH=$JAVA_HOME/bin:$PATH

exportCLASSPATH=$JAVA_HOME/jre/lib/rt.jar:.

设置PATH时用的$JAVA_HOME是指替换变量JAVA_HOME的值到$JAVA_HOME所在位置。如上句实际就是export PATH=/usr/local/jdk/bin:$PATH。这句中$PATH也是同样的作用,不过这里的PATH是指以前设置的PATH变量的值,而非本次设置PATH变量的值。

注意,在CLASSPATH中包含了一个“当前目录(.)”。包含了该目录后,就可以到任意目录下去执行需要用到该目录下某个类的Java程序,即使该路径并未包含在CLASSPATH中也可以。原因很简单:虽然没有明确的把该路径包含在CLASSPATH中,但CLASSPATH中的“.”在此时就代表了该路径,例如

假设在/home/fancy/java目录下有可运行的类HelloJava.class,那么

[fancy@matrix fancy]$

export CLASSPATH=/usr/local/jdk/jre/lib/rt.jar:. //设置CLASSPATH,注意最后的“.”

[fancy@matrix fancy]$

cd ~/java //转到/home/fancy/java

[fancy@matrix java]$

pwd //显示当前目录

/home/fancy/java //当前目录是/home/fancy/java

[fancy@matrix java]$

java HelloJava //运行HelloJava

Hello, Java //运行结果

[fancy@matrix java]$ _

*****实例分析

只是操作系统不同,略有差别。

两个例子都提到一个“可运行的类”,它是指包含了public static void main(String[] args)方法的类,这将在下一章HelloJava一节中详述。例中的CLASSPATH均未包含HelloJava.class所在的目录(C:\java,

/home/fancy/java),但是均包含了当前目录(.)。因此转到包含HelloJava.class的目录下去执行java HelloJava,在Java寻找到CLASSPATH中的“. (当前目录,C:\java,

/home/fancy/java)”时,找到了HelloJava.class,运行成功。

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

推荐阅读更多精彩内容