回 帖 发 新 帖 刷新版面

主题:[原创]不希望以后还有关于环境变量的问题——环境变量的设置图解(新手请进)

[color=0000FF]呵呵  各位学友好~~[/color]
在论坛待了半年多了   谢谢各位老鸟的指导使我基本有了JAVA的基础
想想自己刚开始学JAVA的时候 也确实挺辛苦的  在这里感谢《程序爱好者》论坛提供给我们这样的学习交流的机会~~~再次致谢~~~
但是现在在中国JAVA发展还不够成熟,有很多新人刚开始学JAVA的时候都不知道环境变量和当前目录是什么,在这里我代表斑竹兄具体讨论一下[color=008080]环境变量和当前目录[/color]的问题,希望对各位新手步入JAVA之门有点帮助~~~~(纯粹摆白的个[em12])


[color=FF00FF]一、关于环境变量[/color]
[color=FF0000]1、JAVA需要什么样的环境变量,这些环境变量有什么作用?[/color]
    JAVA程序能够顺利编译需要两个环境变量,一个是PATH(path),一个是CLASSPATH(classpath)。那么这两个环境变量代表什么呢?或者说究竟在JAVA程序编译中有什么作用呢?这就要涉及到WINDOWS的基本知识了。在WINDOWS环境中,每一条能用的指令都保存在硬盘的“某个角落”,比如说指令NOTEPAD(WINDOWS的记事本指令,在C:\WINNT目录下),那么在DOS命令提示符下直接输入NOTEPAD就可以打开记事本了。但是一旦我们把C:\WINNT目录下的NOTEPAD.EXE这个可执行文件移开(比如说我们现在把它“剪切”到D盘根目录下)我们再在DOS提示符下直接输入NOTEPAD时就无法再打开记事本了,但是我们在DOS下改变路径输入D:\NOTEPAD(或者先输入cd D: 在输入NOTEPAD也行)就可以打开记事本了。这就是说在我们直接输入NOTEPAD的时候,其实其默认路径就是C:\WINN。[color=C0C0C0]假设我们要运行一个JAVA程序(hello.java)就要先把它的class文件移动到JAVA里的bin目录下[/color]  然后打开DOS,把路径改到JAVA的BIN目录下 执行java hello.class,一次无所谓 但是每次都要这样去做未免太麻烦。还好WINDOWS提供了一个PATH环境变量,他的作用就是现在这个变量的值路径中去找,如果找到了要运行的EXE就运行,否则失败。如果我们把JAVA里的bin目录这个路径赋给path那么下次我在运行java这个命令的时候,即便是直接输入DOS也能够在path变量中找到JAVA的bin目录下的java指令了。
    下面说说,classpath环境变量。不知道各位注意到没有,我上面说的那句话——“假设我们要运行一个JAVA程序(hello.java)就要先把它的class文件移动到JAVA里的bin目录下”,为什么要这样做呢?因为我们在用到java hello.class这条指令的时候,DOS不知道hello.class这个文件在哪里,他就先到当前目录中去找,如果找到就运行,否则失败。当然,如果说hello.java在D盘根目录下,你也可以用java D:\hello.class这条指令来运行,但是每次这样做也确实够麻烦。WINDOWS就提供了这样一个环境变量——classpath,如果没有就应该新建一个。我们把D:\这个路径赋值给classpath,那么下次在运行java hello.java的时候就先在[color=C0C0C0]当前目录[/color]中到,如果找到就运行,如果找不到就在classpath的值路径下去找,找到就运行,找不到就失败。
    以上阐述了path和classpath两个环境变量的作用,如果设置好了。java的编译和运行就基本上没什么问题了。至于有些书上说的环境变量javahome初学阶段可以暂时不管它。

[color=FF0000]2、如何设置环境变量?[/color]
    小弟向来鄙视WIN98,我一直用的WIN2000,这里就拿WIN2000(WINXP也一样哈)来举例如何设置环境变量。
    右击“我的电脑”,然后“属性”。在分页卡里选择“高级”(图片1),然后点击“环境变量...”按钮,弹出环境变量对话框(如图2)。在下面的系统环境变量中找到path然后双击,在变量值中添加上JAVA的BIN目录的路径(其他的不要删哈,删了后悔不要怪我哟~~~),和其他的路径值用英文状态的;隔开。至于classpath我一般都没有设置,但是比如有些朋友喜欢规范一点,要把java文件全部放到一个文件夹中,比如说D:\javaexe,那么在classpath中加入.;c:\jdk1.3\lib\tools.jar;c:\jdk1.3\lib\dt.jar;D:\javaexe\这个路径。[color=FF0000](注意:.;c:\jdk1.3\lib\tools.jar;c:\jdk1.3\lib\dt.jar;这三个不能少)[/color]


[color=FF00FF]二、关于当前目录[/color]
     当前在用的目录就是当前目录。比如说当你打开NOTEPAD,并处于运行状态时候,当前目录就是C:\WINNT。如果你在用java这条指令,当前目录就是JAVA下的BIN目录所在的路径。

[color=0000FF]终于打完了~~~休息ING[em19][/color]

附:
图片1

[img]http://bbs.sxzc.net//images/upfile/20053813659.jpg[/img]

图片2

[img]http://bbs.sxzc.net//images/upfile/20053813739.jpg[/img]

回复列表 (共41个回复)

31 楼

楼主的文章真是一级棒!但是比如有些朋友喜欢规范一点,要把java文件全部放到一个文件夹中,比如说D:\javaexe,那么在classpath中加入.;c:\jdk1.3\lib\tools.jar;c:\jdk1.3\lib\dt.jar;D:\javaexe\这个路径。我想问一下,为什么只写一个D:\javaexe\就不行呢?为什么三个都不能少啊?还请楼主赐教!

32 楼

程序的运行需要用到两个JAR包里面的东西
所以系统要知道两个JAR包的位置

33 楼

谢谢楼主啊

34 楼

我的path 为: .;d:\jdk1.5.0\bin;
  classpath为: .;d:\jdk1.5.0\lib\dt.jar; d:\jdk1.5.0\lib\tools.jar
  编译没有问题,但是运行时候出现Exception in thread "main" java.lang.NoClassDefFoundError:
  不知道为什么,classpath设置不对吗?谢谢了

35 楼

请楼主帮忙看一下啊,急!昨天搞了一下午,环境变量没设好

36 楼

jdk1.5.0的问题
现在有很多jdk1.5.0都只是升级版的
你现在看看你的安装目录下的lib文件夹里是否有dt.jar和tools.jar文件
如果没有
请先安装jdk1.4.2后在升级

37 楼

谢谢楼主,我已经解决了。[em1]

38 楼

讲得很深入也很具体  [em2]支持

39 楼

差不多,就是 这样

40 楼

谢谢了

我来回复

您尚未登录,请登录后再回复。点此登录或注册