为什么java -version会返回旧版本?

操作系统:Windows XP

我正在使用yuicompressor-2.4.2压缩一些CSS,然后再上传到我的服务器。 但是当我运行它时,会出现以下exception:

 线程“main”中的exceptionjava.lang.UnsupportedClassVersionError:
  com / yahoo / platform / yui / compressor / Bootstrap(不支持的major.minor版本48.0) 

所以我认为这是因为JRE。 我输入的命令是cmd:java -version

它说:java版本“1.3.1_01”,但应该说“1.6.0_16”,因为我已经安装了最新版本。

我该怎么做才能让Java使用最新版本而不是旧版本?

设置环境变量JAVA_HOME,指向您拥有jdk 1.6.0的目录

 set JAVA_HOME=your_path_to_jdk1.6 set PATH=%JAVA_HOME%/bin;.;..;%PATH% 

那是从命令窗口。 您也可以从“我的电脑>属性>高级>环境变量”中进行操作

在Windows上,JRE在Windows目录中安装java可执行文件,该目录应该是路径中的第一个java 。 这只是一个封装器,它在Windows注册表中查找Java主目录(对于Java 6应该是“%SystemDrive%\ Program Files \ Java \ jre6”)并在那里使用库运行。

运行%SystemRoot%\ system32 \ java -version,看看你得到了什么。 如果 Java 6,则在%SystemRoot%\ system32之前的路径中有条目(实际上应该是第一个)。 修复%PATH%变量,或者只要您想运行此版本的Java,就必须明确。

如果运行该java实例不报告Java 6,则未正确安装(正确)。 卸载并重新尝试安装。

如果你因为PATH而遇到麻烦,那是因为你或你安装的某些软件与它有关; 我建议使用默认值,即先使system32。 如果使用默认值,一切正常。

此外,JRE本身根本不使用%JAVA_HOME% 一些常见的Java应用程序如tomcat和ant尊重%JAVA_HOME%设置,所以也许yuicompressor也是如此。 但这是事实上的惯例,而不是标准。

转到system32目录C:\ Windows \ System32并删除以下3个文件

  • java.exe的
  • javaw.exe的
  • javaws.exe

现在创建一个JAVA_HOME环境变量,其值为{jdk安装的根路径},并在PATH环境变量中添加路径直到jdk的bin文件夹。

打开一个新的命令提示符并运行java -version以确认更改

您应该修改PATH环境变量:

我的电脑>右键单击>属性>高级>环境变量

并修改“路径”

最后附加1.6安装的路径:

 ;C:\jdk1.6.xxx\bin 

并删除前一个(如果存在)。

将%JAVA_HOME%/ bin添加到PATH环境变量中,其中JAVA_HOME设置为JRE6u16目录

您应该检查PATH环境变量。 您安装的某些应用程序可能已将其版本的jre放在您的路径中。

看起来旧的Java版本仍然在系统PATH环境变量(操作系统查找命令)或JAVA_HOME(其中yuicompressor可能查找java可执行文件)

这些变量的更改方式取决于您的操作系统。