(作者:lm20224)
Windows下JAVA用到的环境变量主要有3个,JAVA_HOME、CLASSPATH、PATH。下面逐个分析。 JAVA_HOME指向的是JDK的安装路径,如x:JDK_1.4.2,在这路径下你应该能够找到bin、lib等目录。值得一提的是,JDK的安装路径可以选择任意磁盘目录,不过建议你放的目录层次浅一点,如果你放的目录很深,比如x:XXXXXXxxxxxXXXXxxxxXXXXxxxxXXXXxxx…… PATH环境变量原来Windows里面就有,你只需修改一下,使他指向JDK的bin目录,这样你在控制台下面编译、执行程序时就不需要再键入一大串路径了。设置方法是保留原来的PATH的内容,并在其中加上%JAVA_HOME%bin (注,如果你对DOS批处理不了解,你可能不明白%%引起来的内容是什么意思;其实这里是引用上一步设定好的环境变量JAVA_HOME,你写成x:JDK_1.4.2也是可以的;你可以打开一个控制台窗口,输入echo %JAVA_HOME%来看一下你的设置结果) : CLASSPATH环境变量我放在最后面,是因为以后你出现的莫名其妙的怪问题80%以上都可能是由于CLASSPATH设置不对引起的,所以要加倍小心才行。
(以下转自 http://www.javaeye.com/topic/53811) 不管是初学Java编程,还是Java程序设计老手,都要设置环境变量,为此,不少习惯于VC编程的同学还觉得学习Java门槛高。 一般而言,课堂(网络,图书)上总会讲两种设置方法: 1.使用SET 命令编辑一个批处理文件(或者添加到autoexec.bat文件中)。 命令格式:SET [variable=[string]],其中variable 指定环境变量名称,string 指定要指派给变量的一系列字符。 比如: SET JAVA_HOME=d:javadevjdk; (注意: 仅仅键入 SET 而不加参数,可以显示系统所有的环境变量,这些变量可以在程序设计和BAT编程中使用,例如: ALLUSERSPROFILE=C:Documents and SettingsAll Users 2.如果是在Win2000,XP操作系统下,使用鼠标右击“我的电脑”->属性->高级->环境变量 按照第二种方式,我们通过cmd命令打开DOS窗口时,就有了设定的环境变量。 问题是,随着工具、语言等(版本控制、单元测试、自动化、perl,python、ruby...)越来越多,要设置的环境变量也越来越多,如果重装机器,使用第二种环境变量的添加方式很是烦人,这本身也是个重复的过程。有什么好办法吗?其实环境变量在注册表中放在:HKEY_LOCAL_MACHINESYSTEMControlSet001ControlSession ManagerEnvironment,如果各种工具安装位置不变(个人或团队都应该有个规范,不宜变来变去),我们把环境变量节点导出即可(通过cmd->regedit打开),日后只要双击一下该文件,就可恢复所有环境变量 |
我也是初学者,转载一篇文章,希望对你有所帮助,大家共同进步吧!
常,我们需要设置三个环境变量: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 安装路径下的 jrelibrt.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:WindowsCommand
set CLASSPATH=%JAVA_HOME%jrelibrt.jar;.
有些版本的 Windows 不能用 %变量名% 来替换环境变量的内容,那么就只好直接写 C:jdk 而不是 %JAVA_HOME% 了。另外,C:Windows 和 C:WindowsCommand 是 Windows 会自动加入路径的,所以可以从设置中去掉。如果在 autoexec.bat 中已经设置了 PATH,那只需要将 %JAVA_HOME%bin 加到原来设置 PATH 的那条语句中就行了。
CLASSPATH 也可以根据需要设置或者加入其它的路径,比如你想把自己写的一些类放在 C:java 中,就可以把 C:java 也添加到 CLASSPATH 中去,set CLASSPATH=%JAVA_HOME%jrelibrt.jar;C:java;.。
注意,在 CLASSPATH 中包含了一个"当前目录 (.)"。包含了该目录后,就可以到任意目录下去执行需要用到该目录下某个类的 Java 程序,即使该路径并未包含在 CLASSPATH 中也可以。原因很简单:虽然没有明确的把该路径包含在 CLASSPATH 中,但 CLASSPATH 中的 "." 在此时就代表了该路径,如:
假设在 C:java 目录下有可运行的类 HelloJava.class,那么
C:> set CLASSPATH=C:jdkjrelibrt.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,运行成功。
2008-1-30 test it. It's OK
JSP学习笔记(1)——环境变量设置(适用于Windows 2K、XP、2003)
作者:X-Force 日期:2006-05-22
因为想要争取参加实习工作的需要,现在就要学习Java了,希望能把握住机会啦!刚下载了个Java2 SDK,成功的运行上了HelloWorld程序了~刚开始入门,觉得应该把所有的东西都记录在Blog的!以后也会抽时间记录自己的学习心得的。好,废话不说,说回正题了吧。在学开发之前有必要先了解一下什么是SDK,JDK,J2ME,J2SE,J2EE,JRE的,当你都搞清楚了,就继续看下去吧,不然以后遇到了你会很乱的。
首先,从Sun网站上下载jdk,当前版本为1_5_0_06(其他版本亦可)
最终下载下来的文件为jdk-1_5_0_06-windows-i586-p.exe
双击jdk-1_5_0_06-windows-i586-p.exe开始安装
默认安装到C:Program FilesJavajdk1.5.0_06,你也可以更改路径,但要记住最后选择的路径,设置环境变量的时候我们还要用到(建议c:jdk,这样干啥都方便,个人意见,呵呵),jdk安装完毕之后,还会让安装jre,一并装了吧。
全部安装完毕之后,我们就可以开始设置环境变量了。右击我的电脑,选属性,高级,环境变量,
在系统变量(S)栏点新建,出现新建系统变量对话框
在变量名(N)中填上JAVA_HOME
在变量值(V)中填上你安装jdk时所选的路径,如下图所示(点击放大):
确定后在系统变量(S)栏再新建一个环境变量
在变量名(N)中填上CLASSPATH
在变量值(V)中填上
.;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar
如下图所示(点击放大):
确定后在系统变量(S)栏查找并选中变量为Path的选项,点编辑
在变量值(V)的末尾添加
;%JAVA_HOME%bin;
如下图所示(点击放大):
确定后退出。至此,我们的环境变量已经设置完毕了。
可以编个JAVA小程序测试以下打开记事本,输入下面这个小程序,另存为HelloWorld.java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
然后运行cmd,到HelloWorld.java所在目录,执行
javac HelloWorld.java
java HelloWorld
如下图所示(点击放大):
如果能正确输出Hello, World! 说明环境变量设置成功。
如果出现错误提示,请对照上述步骤,并检查HelloWorld.java程序是否输入有误,直至环境变量设置成功为止。
在这里,我说说我一开始做错的地方,希望大家能注意
初学者常犯的错误
1. 运行时,带了.class后缀
如果你试图使用如下命令:
E:javasrc>java HelloWorld.class
系统会误认为你运行的是HelloWorld包下的名为class的类文件,会到系统的CLASSPATH下(一般都包括当前目录)企图寻找HelloWorld.class.class这样的类,这样的类当然不存在了;并且也不可能存在,因为class是关键字,不能作为一个类的名字。所以会报如下错误信息:
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld/class
2. 文件名大小写错误
对于像Windows这样的系统,编译时可以不关心大小写。比如编译HelloWorld.java时,也可以使用:
E:javasrc>javac helloworld.java
也可以编译通过,但产生的类文件仍然是和源文件相符的:HelloWorld.class。
但在运行时一定要注意大小写,比如试图使用如下命令运行:
E:javasrc>java helloworld
将报类似于1中的错误:
Exception in thread "main" java.lang.NoClassDefFoundError: helloworld (wrong name: HelloWorld)
3.文件名必须和类名相同!我就因为这个错误花了半个小时才调试成功的~
4.CLASSPATH系统变量值中填上“.;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar”(不含双引号)千万要注意最左边是1个点哦!!!!!别漏掉了!!这个是告诉JDK,搜索CLASS时先查找当前目录的CLASS文件——为什么这样搞,这是由于LINUX的安全机制引起的,LINUX用户很明白,WINDOWS用户就很难理解(因为WINDOWS默认的搜索顺序是先搜索当前目录的,再搜索系统目录的,再搜索PATH环境变量设定的) ,满足喜欢盘根究底的朋友了吧?
好了,今天就这里吧。继续学习去!
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/91551/viewspace-998674/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/91551/viewspace-998674/