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

Car*_*ñoz 8 java

操作系统:Windows XP

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

Exception in thread "main" java.lang.UnsupportedClassVersionError:
 com/yahoo/platform/yui/compressor/Bootstrap (Unsupported major.minor version 48.0)

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

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

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

Jua*_*nZe 11

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

set JAVA_HOME=your_path_to_jdk1.6
set PATH=%JAVA_HOME%/bin;.;..;%PATH%
Run Code Online (Sandbox Code Playgroud)

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


小智 10

例如where java在命令提示符之后

where java
C:\Program Files\Common Files\Oracle\Java\javapath
C:\Program Files\Java\jdk-11.0.10\bin\java.exe
Run Code Online (Sandbox Code Playgroud)

删除C:\Program Files\Common Files\Oracle文件夹然后关闭所有终端并java -version在终端中写入。它将显示
适合我的正确版本


Aru*_*dev 8

如果您使用的是Windows 7/10,请转到命令提示符并键入

where java
Run Code Online (Sandbox Code Playgroud)

删除下面显示的所有符号链接,而不是您的实际安装目录。

即使正确添加了所有环境变量,有时您仍然会得到错误的版本,尤其是当您的系统中安装了多个版本并希望在它们之间切换时。


eri*_*son 7

在Windows上,JRE java在Windows目录中安装可执行文件,该目录应该是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也是如此.但这是事实上的惯例,而不是标准.

  • 很棒的提示!!我从来没有想过这个问题。我已经添加到我的路径中,但最后。一旦我调整了订单,它就立即解决了问题。谢谢 :) (2认同)

Was*_*lik 7

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

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

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

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

  • 这也可以在此目录C:\ ProgramData \ Oracle \ Java \ javapath中,您也需要删除它们 (2认同)