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

时间:2012-05-14 14:15:13

标签: ubuntu java javac openjdk unsupported-class-version

我在Ubuntu上编译的Java应用程序有问题。它抛出UnsupportedClassVersionError。 我正在使用比在PATH中配置的JDK版本更高的JDK版本来编译以运行Java:

$ 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)

我该如何解决这个问题?

5 个答案:

答案 0 :(得分:22)

在终端输入以下命令:

  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

答案 1 :(得分:17)

您还需要:

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

答案 2 :(得分:8)

运行以下任一项以找到该位置的位置

javac 1.7.0_147

使用方法如下:

whereis javac

 locate javac

find javac

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

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

答案 3 :(得分:3)

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

答案 4 :(得分:1)

我已经添加并安装了Java和Javac的替代产品,并通过以下步骤为我工作:

步骤1 添加Java和Javac替代项

添加Javac的命令:

sudo update-alternatives --install "/usr/bin/java" "java" "/opt/amazon-jdk-11/bin/java" 1 

即:“ / opt / amazon-jdk-11 / bin / javac”这是Java的新路径

sudo update-alternatives --install "/usr/bin/javac" "javac" "/opt/amazon-jdk-11/bin/javac" 1

即:/ opt / amazon-jdk-11 / bin / javac是javac的新路径

步骤2 安装了Java和Javac替代版本

sudo update-alternatives --config javac
sudo update-alternatives --config javac

输入上面的命令后,您将可以看到如下所示的屏幕,您可以选择要配置Java的号码。

enter image description here

我已选择“ 1 ”作为要安装“ / opt / amazon-jdk-11 / bin / java”作为我的javac的列表。

使用以下命令验证 Java替代安装是否成功

which javacwhich java,您将看到如下屏幕:

enter image description here