Java编译器版本和Java版本是不同的

问题描述:

我想运行一个已编译的java类并获取错误,但是当我检查我的java环境时它指向不同的版本。Java编译器版本和Java版本是不同的

javac的-version给我1.8.0

而且

Java的版本给我1.6.2

将JAVA_HOME和路径指向1.8版本。

请帮忙。

+0

是哪个操作系统呢? – 2015-03-25 12:09:12

+1

你在使用Eclipse之类的IDE吗? – 2015-03-25 12:09:16

+0

设置路径时,将其设置为像PATH =%JAVA_HOME%\ bin;%PATH%。它会将您的JAVA bin文件夹放在其他人之前。 – 2015-03-25 12:24:13

请检查以下内容:

1)检查您的路径变量

2)检查JAVA_HOME变量

3)删除了Java, javaw和javaws .exe文件来自system32文件夹

如果您正在运行Windows,您可以检查路径环境变量。它可能指向较旧的JRE安装。

+0

我检查了环境变量,那不是问题。java_home和path都指向1.8版本 – 2015-03-25 12:06:36

+0

我假设你安装了1.6.2版本的第二个JRE? – 2015-03-25 12:08:22

+0

是的,我也有1.6版本也安装,但我没有设置1.6版 – 2015-03-25 12:10:16

Windows下的Java安装有时是一个非常严重的痛苦来源。下面假设您有Windows:

  1. 检查你的路径变量
  2. 检查JAVA_HOME变量
  3. 较新版本的Java(1.6,但1.7和1.8?)复制一些Java可执行文件到的System32目录windows安装。只需删除此文件(或将它们移动到其他位置以便恢复)
  4. 通过使用.bat文件运行Java应用程序可以提供特定的JDK/JRE。

可能有更多的问题来源。例如,使用Maven,您依赖于JAVA_HOME,使用Eclipse您可以使用项目设置,...

+0

我会检查我的system32目录 – 2015-03-25 12:14:10

+0

塞巴斯蒂安...它的工作原理..我从system32文件夹中删除java,javaws和javaw .exe文件。非常感谢 !! – 2015-03-25 12:21:27

+0

@NithinVarghese,如果有效,请将此答案标记为正确答案。这会增加塞巴斯蒂安的声望(他值得xD),并可以帮助其他有同样问题的人。 – Albert 2015-03-25 12:24:13

一种可能性是您的Java链接不一致。去这个位置(Windows):

C:\ProgramData\Oracle\Java\javapath并检查在哪里做java.exe点。

如果它没有跟上时代的考虑修复它:

mklink /d C:\ProgramData\Oracle\Java\javapath "C:\Program Files\Java\<your JDK>\bin\" 

(您可能需要删除javapath旧的链接您创建一个新的前),而Java安装

java.exe被复制到System32目录下。我们还倾向于在path变量的末尾附加java路径。这会导致运行java命令指向System32中的命令(它会接受遇到的第一个路径值并忽略其余的值,在本例中为system32文件夹的java)。并且,当它找不到javac时,它会查找path的其他值并发现它朝向Java JDK(这是您要使用的那个)的末尾。为了解决此问题,请为您的JDK指定路径,例如C:\ProgramData\Oracle\Java\bin作为第一个条目在窗口path变量。甚至在你的system32入口之前。这可以确保您只指向一个Java。我的路径条目看起来是这样的: -

%JAVA_HOME%\bin;%SystemRoot%\system32;