当前位置: 首页>>技术教程>>正文


解决Ubuntu上Java和Javac之间的版本冲突

, , , ,

问题描述

我在Ubuntu上编译的Java应用程序有问题。抛出UnsupportedClassVersionError。我正在使用比在PATH中配置为运行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

它将要求您:

There are 2 choices for the alternative java (providing /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:

我想使用Java 1.7.0_21输入2

第三种办法

您还需要执行以下操作:

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 and Ubuntu。我基本上有相同的配置,但是我正在Glassfish和Java7之间来回切换。看看并尝试以类似方式设置Java环境

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/10530.html,未经允许,请勿转载。