解决Ubuntu上java和javac之间的版本冲突

我在Ubuntu上编译的Java应用程序有问题。 它抛出UnsupportedClassVersionError 。 我正在编译的JDK版本高于在PATH中configuration的运行Java的JDK版本:

 $ javac -version javac 1.7.0_147 $ java -version java version "1.6.0_23" OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre11-0ubuntu1.11.10.2) OpenJDK Client VM (build 20.0-b11, mixed mode, sharing) 

我该如何解决这个问题?

运行以下任一项来查找位置的位置

 javac 1.7.0_147 

使用如下:

 whereis javac 

要么

  locate javac 

要么

 find javac 

然后,一旦你找到了目录,象征性地强制链接bin内容到/ usr / bin:

 sudo ln -f -s [put location here]/bin/* /usr/bin 

在终端中键入以下命令:

  sudo update-alternatives --config java 

它会问你:

有两种选择替代Java(提供/ usr / bin / java)。

  Selection Path Priority Status 0 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061 auto mode 1 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061 manual mode 2 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1051 manual mode Press enter to keep the current choice[*], or type selection number: 

我输入2,因为我想用java 1.7.0_21

你还需要做:

 sudo update-alternatives --config javac 

从提供的列表中选择所需的java编译器。 例如在Centos 5上

 There are 2 programs which provide 'javac'. Selection Command ----------------------------------------------- 1 /usr/lib/jvm/java-1.6.0-openjdk/bin/javac *+ 2 /usr/lib/jvm/java-1.7.0-openjdk/bin/javac 

这就是你想要的Java和Ubuntu 。 我基本上有相同的配置,但是我从Glassfish和Java7来回切换。 看一看,然后尝试以类似的方式设置Java env