Java编译器版本和java版本不同

时间:2015-03-25 12:03:39

标签: java eclipse

我正在尝试运行已编译的java类并获取错误,但是当我检查我的java环境时,它指向不同的版本。

Javac -version给了我1.8.0

Java -version给了我1.6.2

Java_home和路径指向1.8版本。

请帮忙。

5 个答案:

答案 0 :(得分:2)

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

  1. 检查路径变量
  2. 检查JAVA_HOME变量
  3. 较新版本的Java(1.6 ?,但1.7和1.8)将一些Java可执行文件复制到Windows安装的System32目录中。只需删除这些文件(或将其移动到其他地方以便于恢复)
  4. 使用.bat文件运行java应用程序可以提供特定的JDK / JRE。
  5. 您的问题可能有更多来源。例如,使用Maven,您依赖于JAVA_HOME,使用Eclipse,您可以使用项目设置......

答案 1 :(得分:1)

java.exe将java安装复制到System32目录下。我们还倾向于在path变量的末尾附加java路径。这导致运行java命令指向System32中的那个(它获取遇到的第一个路径值并忽略rest,在本例中为system32文件夹的java)。当它找不到javac时,它会查找path的其他值,并在java JDK的末尾找到它(这是你要使用的那个)。为了解决这个问题,请给出你的路径JDK例如C:\ProgramData\Oracle\Java\bin作为windows path变量中的第一个条目。甚至在你的system32入门之前。这可以确保您只指向一个java。我的路径条目如下所示: -

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

答案 2 :(得分:1)

请检查以下内容:

1)检查你的路径变量

2)检查JAVA_HOME变量

3)从system32文件夹中删除java,javaw和javaws .exe文件

答案 3 :(得分:0)

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

答案 4 :(得分:0)

一种可能性是您的Java链接不一致。转到此位置(Windows):

C:\ProgramData\Oracle\Java\javapath并查看java.exe指向的位置。

如果不是最新的,请考虑使用以下方法进行修复:

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

(您可能需要在创建新链接之前删除javapath旧链接)