接触Java的第一天就配置这个环境变量,一直没有研究过。到底怎么回事
      现在稍微了解了一点  就有了把它写出来  分享一下的冲动,于是就开始写了 呵呵
      有不对的地方请大家指正:
1. path
  当我们在dos下输入javac的时候   系统就要到path 配置的路径中去找 这个可执行文件在什么地方  
  path=jdk安装目录\bin;jdk安装目录\jre\bin;
  这就是当初 我们刚用javac  首先要cd 进入javac.exe所在的目录  然后才能执行javac的原因
2. java_home
  当我们配置了path  但是  如果我们改变了 jdk的目录 那么又要重新设置path   (说实在的这种情况不多见)
  另外一个原因是 我们安装的软件越来越多 愁人的oracle路径那么老长  造成path字符长度不够  无法安装oracle
  所以  又来一种配置方式
  建一个变量Java_home 值是jdk安装目录  path中 把这个Java_home变量配置上  就ok了
  现在:path=%Java_home%\bin;%Java_home%\jre\bin;    path是不是缩短了很多。
3.classpath  不用多说 这是class的路径配置 
  如不配置  jvm首先在当前目录查找  当前目录没有 对不起 报错。
  配置了之后  任何目录都可以执行java
  为什么那,首先Java运行后 jvm会首先在classpath中查找  找不到 就去path中查找  
另外提一句 当配置classpath的时候 前面有个“.;d:\”这个表示 首先在当前目录找  如果没有在去d盘找 
 classpath=.;%Java_home%\lib\tools.jar;好了 就说这么多  本人文笔不是太好  有表达不清楚的地方请各位老大见谅 好了就说这么多  

解决方案 »

  1.   

    愿意分享,很好的习惯,不过指出个小问题:
      path=jdk安装目录\bin;jdk安装目录\jre\bin;
    后面那个jre是不需要的。另外:%Java_home%\lib\tools.jar 既然你已经设置了JAVA_HOME,这个其实已经可以不需要加入CLASSPATH了。
      

  2.   

    第一个问题:刚找了下jdk\bin里就有java.exe 学习了 感谢2楼指点
       我想问一下jdk\bin\java.exe和jdk\jre\bin\java.exe有什么区别吗?为什么要用两个那?只用jre里的java.exe不就好了么 表示不理解。
    第二个问题:为什么不需要加入classpath那
    javahome只是一个变量啊,是给path服务的啊 和classpath没有关系的啊。
    path中配置的是可执行程序javac.exe 和java.exe 的路径
    classpath配置的是所用class的路径啊   不配置去哪里找类的位置那?
      

  3.   

    基本没啥区别,可以理解为为了某些场合,专门提供一个完整jre环境。%Java_home%\lib\tools.jar这类是它的基础类包,Java自己会去引入,不依赖于CLASSPATH
      

  4.   

    受教了,嘿嘿!我到现在配置变量都需要看教程。不过我用myEclipse+tomcat,已经不需要配置了,myEclipse已经帮我配好了,嘿嘿
      

  5.   

    什么意思啊  才开通csdn    刚刚写了2贴  还不懂  什么分啊?
      

  6.   

    jdk包含jre的。你进jre目录可以看到,jre里面主要就是jdk下的bin和lib 2个文件的内容的。jdk还有一些其他的文件夹,主要是demo和源码和例子啥的。你如果只要运行java程序,只要有jre(Java Runtime Environment,java运行环境)就可以了,当然直接配jdk也是可以的。
      

  7.   

    看的有点晕,看来java并不只是写段代码那么简单呀!要知其然也要知其所以然!受教了!
      

  8.   

    dos下编辑运行自己写的类的时候
    可以暂时性的配置路径-------->只在当前这个dos窗口有效。
    所以关闭dos窗口后  path  classpath是不变的
    可已验证下   计算机 -- 属性 -- 高级系统设置-- 环境变量   当然还是原来的  
    用set path命令设置 路径 比如设置javac.exe启动路径 c:\> set path=jdk安装目录\bin;
    set classpath命令设置  c:\>set classpath=D:\;
    好了现在运行吧  cd java源文件位置\> javac test.java 编译成功
    任意位置运行 class类       随意位置\>java test       运行成功
    编译完成后   当然可以更换用那一个 环境运行了
    c:\>set path=jdk1.5安装目录\jre\bin;
    c:\>set path=jdk1.6安装目录\jre\bin;
    c:\>set path=单独的jre5安装目录\bin;
    c:\>set path=jre6安装目录\bin;
    随便的换  ^-^
    先了解到这么多。继续泡论坛 学习
    欢迎大家继续讨论最后留下一个疑问
    c:\User\用户名> set path

    c:\>set path
    设置的都是系统path变量  有什么不同吗?
    如果此时我的用户变量中也有一个path 那么 上面两种情况又有什么不同那?
    做为我的扩展了解  希望大家 指点....
    期待答案中........>_<
      

  9.   

    最后那个疑问是:没差异你通过控制面板->系统属性->环境变量 所配置的用户变量和系统变量,在命令行下都会合并成一个PATH顺序是:
    PATH=系统变量PATH;用户变量PATH