分享
 
 
 

Java Path

王朝java/jsp·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

***转***iamfancy(边城狂人)

通常,我们需要设置三个环境变量:JAVA_HOME、PATH 和 CLASSPATH。

JAVA_HOME:该环境变量的值就是 Java 所在的目录,一些 Java 版的软件和一些 Java 的工具需要用到该变量,设置 PATH 和 CLASSPATH 的时候,也可以使用该变量以方便设置。

PATH:指定一个路径列表,用于搜索可执行文件的。执行一个可执行文件时,如果该文件不能在当前路径下找到,则依次寻找 PATH 中的每一个路径,直至找到。或者找完 PATH 中的路径也不能找到,则报错。Java 的编译命令 (javac),执行命令 (java) 和一些工具命令 (javadoc, jdb 等) 都在其安装路径下的 bin 目录中。因此我们应该将该路径添加到 PATH 变量中。

CLASSPATH:也指定一个路径列表,是用于搜索 Java 编译或者运行时需要用到的类。在 CLASSPATH 列表中除了可以包含路径外,还可以包含 .jar 文件。Java 查找类时会把这个 .jar 文件当作一个目录来进行查找。通常,我们需要把 JDK 安装路径下的 jre\lib\rt.jar (Linux: jre/lib/rt.jar) 包含在 CLASSPATH 中。

PATH 和 CLASSPATH 都指定路径列表,列表中的各项 (即各个路径) 之间使用分隔符分隔。在 Windows 下,分隔符是分号 (;),而在 Linux 下,分隔符是冒号 (:)。

下面分别说明三个环境变量在 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

set PATH=%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> _

该例将在 1.3.3 节中分析。

**** 在 Linux 下设置

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

export JAVA_HOME=/usr/local/jdk

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=$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]$ _

该例将在 1.3.3 节中分析

***** 实例分析

1.3.1 节和 1.3.2 节中的用到的实际上是一样的例子,只是操作系统不同,略有差别。

两个例子都提到一个“可运行的类”,它是指包含了 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,运行成功。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有