嗯,估计每个Javaer都遇到过,只是很多时候(比如开发WEB应用)这种问题不需要解决罢了:
问题场景:
开发的独立Java程序abc.jar或abc.class(指不需要在tomcat等之中去运行。tomcat有自己的jdk/jre使用机制,根本不需要WEB开发者操心),需要JRE去执行。安装了JDK(或JRE)1.6+,在环境变量里配置了JavaPath指向自己的jdk/jre目录,用java.exe执行abc程序,OK。至此一切正常;
突然有一天,报编译abc程序的Java版本太高啦,运行此程序的的Java版本太低,运行不了。(这种的报错类似于下面的样子:class file has wrong version 49.0, should be 48.0,Please remove or make sure it appears in the correct subdirectory of the classpath.)
分析:
abc程序是用JDK1.6开发编译的,这个自己很清楚。打开cmd看了一下java -version,发现是1.3.1*。为什么会如此之低?
问度娘,回答是极有可能原因是安装了Oracle数据库、MQ等软件所致。Oracle QJ了本地Path中配置的Java path。
解决:
1,打开环境变量,将jdk1.6的java path项放置到path项的第一位;(位于Oracle的Java path 项之前)
2,重新打开 CMD(务必重新打开),查看Java -version ,就会发现已经恢复。
over
本文讲述了在使用Java开发独立程序时遇到的版本不匹配问题及解决方案。具体问题为高版本Java编译的程序无法在低版本Java环境中运行,并给出了通过调整环境变量顺序来解决问题的方法。

被折叠的 条评论
为什么被折叠?



