JDK配置问题 我先前装了一个JDK配置了环境用了一段时间现在又重新装了一个JDK把先前的环境配置也改成现在装的JDK怎么现在命令行窗口中输入java -version仍然显示的先前那个JDK呢?现在系统中运行JAVA编译是用的哪个JDK呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看看环境变量中path里最前面配的jdk是哪个 去C:\windows\system32下面是不是有个java.exe和javaw.exe,看看那个java.exe是什么版本的。 注意用户变量和系统变量两个分栏里面的path。。它们是叠加到一起做为java的环境变量的。 嗯,是以前那个。是不是如果改为另外一个的话,直接删了这个,把别外那个java.exe拷贝过来呢? 如果要装新的JDK的话,需要把path加到path环境变量的最前端,这样在查找JDK的path的时候才能第一个找到最前端的JDK,也就是新装的JDK 不行啊,我是这样设的,tomcat都能识别出我后来装那个,但在命令行窗口里输入java -version就是显示以前那个! cmd先找system32里面的,覆盖吧。 谢谢各位问题得到解决将%JDK_HOME%\bin目录放在Windows操作系统的PATH变量的首位,就可以避免了这种情况了 lz装一个jdk6.0(也是1.6)就可以了,省的麻烦,jdk6.0兼容以前版本。把它卸载了,装个1.6的 你在命令窗口输入:java -version就是想知道 你现在所用的JDK的版本号。当你输入java XXX的时候 java.exe(包装器)就会去找相应的 JRE来执行类文件。 首先从java.exe本身的目录下找JVM(java虚拟机);如果没有,就会去java.exe的父目录(也就是java.exe的上一个目录)下的JRE找JVM(java虚拟机)如果还是没有找到JVM(java虚拟机),第三条路径:自动查询WindowsRegistry(HKEY_LoCAL_MACHINE\Software\JavaSoft\Java Runtime Environment\)所以到底是哪一个版本的JRE被用来执行 java应用程序 跟 java.exe找到哪一个JRE是连在一起的,java.exe按上面的路径找到的是哪个版本的JRE就是 哪个版本的JDK(其实是JRE)来执行你所编译的类文件。当然你又会问 我说这些等于没说,的确如此。因为当你安装一个JDK(没去掉安装在program Files下的JRE)那么至少会有两个 java.exe(包装器)那么当你在命令行输入:java xxx的时候到底是哪个java.exe被用来执行呢?这个就跟你电脑高级选项的环境变量有关系了。总path路径=系统path+用户path 系统path路径优先.一般系统path=C:\WINDOWS\system32;C:\WINDOWS......所以被使用的java.exe在总path路径找(系统的优先)因此一般找到的都是c盘中的java.exe,使用的一般也会是c盘中的JRE这里所说到的包装器是这个意思:javac.exe java.exe jar.exe这些看上去是执行文件,但其实他们都是用java编辑出来的类文件。那么你可能又会问:类文件不都是用.class结尾的文件吗。的确,.class结尾的文件才是类文件,但是如果我们要使用java编译器也就是javac的时候,就要先把javac.class这个类文件送到JRE那里运行后才能使用。这就要输入比较长一串路径 java -classpath d:j2sdk1.4.0\lib\tools.jar com.sun.tools.javac.Main。 这其实跟输入:javac是一样的结果所以我们在命令行输入 javac 其实就是执行了 javac.exe这个包装器包装器的作用:找到JRE和Tools.jar。说了这么多感觉,还是没说清楚,总结一下:实也就是哪一个你要想知道是哪一个版本的JDK被执行,其版本的JRE被执行。而哪一个JRE被执行又跟哪一个java.exe被执行有关系。哪一个java.exe被执行又跟环境变量path路径有关。根据这个逻辑关系 自己想想 我按照上面的方法,尝试过,当然我输入的是安装的JDK版本名字,java -version还是显示1.4.2这个版本,我用的RHEL5.5,安装的JDK是jdk-6u24-linux-i586.bin,不知道是什么原因 请教一道java基础问题 Log4j中我得到了记录器之后,如何读取配置文件??? 如何自动显示第一条信息 用PreparedStatement查询 求教一个在JPanel面板上动态显示当前时间的问题,请高手帮下忙! 单态设计模式的例子 请问有什么实用的办法获取一个整型数据的长度? 利用jdom中的XPath 的时候出错了,请大侠指教 欲学javamial,做过电子邮件系统的请指教 如何删除以上传的文件? JScrollPane中放JTable,为什么不显示滚动条呢? 一个易语言也能轻松调用win32 API为什么java
cmd先找system32里面的,覆盖吧。
你在命令窗口输入:java -version
就是想知道 你现在所用的JDK的版本号。当你输入java XXX的时候 java.exe(包装器)就会去找
相应的 JRE来执行类文件。 首先从java.exe本身的目录下找JVM(java虚拟机);如果没有,就会去java.exe的父目录(也就是java.exe的上一个目录)下的JRE找JVM(java虚拟机)
如果还是没有找到JVM(java虚拟机),第三条路径:自动查询Windows
Registry(HKEY_LoCAL_MACHINE\Software\JavaSoft\Java Runtime Environment\)所以到底是哪一个版本的JRE被用来执行 java应用程序 跟 java.exe找到哪一个JRE是连在一起的,java.exe按上面的路径找到的是哪个版本的JRE就是 哪个版本的JDK(其实是JRE)来执行你所编译的类文件。当然你又会问 我说这些等于没说,的确如此。
因为当你安装一个JDK(没去掉安装在program Files下的JRE)那么至少会有两个 java.exe(包装器)
那么当你在命令行输入:java xxx的时候到底是哪个java.exe被用来执行呢?
这个就跟你电脑高级选项的环境变量有关系了。
总path路径=系统path+用户path 系统path路径优先.
一般系统path=C:\WINDOWS\system32;C:\WINDOWS......
所以被使用的java.exe在总path路径找(系统的优先)
因此一般找到的都是c盘中的java.exe,使用的一般也会是c盘中的JRE这里所说到的包装器是这个意思:javac.exe java.exe jar.exe这些看上去是执行文件,但其实他们都是用java编辑出来的类文件。那么你可能又会问:类文件不都是用.class结尾的文件吗。的确,.class结尾的文件才是类文件,但是如果我们要使用java编译器也就是javac的时候,就要先把javac.class这个类文件送到JRE那里运行后才能使用。
这就要输入比较长一串路径 java -classpath d:j2sdk1.4.0\lib\
tools.jar com.sun.tools.javac.Main。 这其实跟输入:javac是一样的结果所以我们在命令行输入 javac 其实就是执行了 javac.exe这个包装器包装器的作用:找到JRE和Tools.jar。说了这么多感觉,还是没说清楚,总结一下:
实也就是哪一个你要想知道是哪一个版本的JDK被执行,其版本的JRE被执行。
而哪一个JRE被执行又跟哪一个java.exe被执行有关系。哪一个java.exe被执行又跟环境变量path路径有关。根据这个逻辑关系 自己想想