亲们,本人最近配置jdk环境变量,遇到一个甚是奇怪的问题,希望知道的给与解答。之前配置jdk的环境变量,都是首先配置一个java_home,之后配置path和classpath,这次也是这样配置,只是机器上安装有oracle,安装oracle的时候安装了一个1.3版本的jdk,这时候在dos下运行java -version的时候老是显示1.3版本的jdk,但是我在不使用java_home的时候,直接配置path和classpath,这时候再在dos运行java -version就显示jdk1.6版本,这是怎么个情况啊?给江江呗

解决方案 »

  1.   

    1,设置JAVA_HOME: 
    一、为了方便引用,比如,你JDK安装在C:\Program Files\Java\jdk1.6.0目录里,则设置JAVA_HOME为该目录路径, 那么以后你要使用这个路径的时候, 只需输入%JAVA_HOME%即可, 避免每次引用都输入很长的路径串; 
    二、归一原则, 当你JDK路径被迫改变的时候, 你仅需更改JAVA_HOME的变量值即可, 否则,你就要更改任何用绝对路径引用JDK目录的文档, 要是万一你没有改全, 某个程序找不到JDK, 后果是可想而知的----系统崩溃! 
    三、第三方软件会引用约定好的JAVA_HOME变量, 不然, 你将不能正常使用该软件, 以后用JAVA久了就会知道, 要是某个软件不能正常使用, 不妨想想是不是这个问题. 2,设置CLASSPATH: 
    这是一个很有趣,当然也比较折磨初学者的问题, 这个变量设置的目的是为了程序能找到相应的".class"文件, 不妨举个例子: 你编译一个JAVA程序---A.java, 会得到一个A.class的类文件,你在当前目录下执行java A, 将会得到相应的结果(前提是你已经设置CLASSPATH为"."). 现在, 你把A.class移到别的目录下(例如:"e:\"), 执行java A, 将会有NoClassDefFindError的异常,原因就是找不到.class文件, 现在你把CLASSPATH增加为:".;e:\"再运行java A, 看看会有什么结果~~:)~~~, 一切正常, java命令通过CLASSPATH找到了.class文件! 3,设置PATH: 
    道理很简单, 你想在任何时候都使用%JAVA_HOME%\bin\java 等来执行java命令吗, 当然不会, 于是, 你可以选择把 %JAVA_HOME%\bin添加到PATH路径下, 这样, 我们在任何路径下就可以仅用java来执行命令了.(当你在命令提示符窗口输入你个代码时,操作系统会在当前目录和PATH变量目录里查找相应的应用程序, 并且执行.
      

  2.   

    你运行java -version 最终要看的还是path里怎么配的吧,
    你还不如把你的path配置贴出来看看
      

  3.   

    我对java_home的理解也是这样的,但是在使用java_home进行配置的时候为什么会出现问题那?
      

  4.   


    我的jdk安装在了D:\java下
    java_home:D:\java\jdk1.6
    path: ;%java_home%\bin
    classpath: .;%java_home%\lib
      

  5.   

    你先运行下 set JAVA_HOME ,看是不是和你这里设置的一样如果是的话,你在地址栏输入:d:\java\jdk1.6\bin回车,看是不是能够进入,如果能够进入的话应该没问题啊另外你还是吧path最前面的;去掉吧
      

  6.   

    运行set java_home,和这里的设置是一样的,但是在地址栏里输入d:\java\jdk1.6\bin
    没有进入
      

  7.   

    那就说明你没这个目录啊,当然找不到咯,所以就用path里后面配置路径了呀