在ubuntu 14.04中将jdk 8降至7

Aad*_*tta 3 java ubuntu java-7 java-8

我在ubuntu 14.04中意外升级了整个系统.

我正在尝试部署需要JDK7的war文件.

我尝试安装JDK7并将其用作默认值

root:floyd~# update-alternatives --config java
There is only one alternative in link group java (providing /usr/bin/java): /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
Nothing to configure.
Run Code Online (Sandbox Code Playgroud)

但它也没有安装.尝试安装JDK 7时出现以下错误.

root@floyd:~# apt-get install openjdk-7-jdk
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package openjdk-7-jdk is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

N: Ignoring file '50unattended-upgrades.ucf-dist' in directory '/etc/apt/apt.conf.d/' as it has an invalid filename extension
E: Package 'openjdk-7-jdk' has no installation candidate
Run Code Online (Sandbox Code Playgroud)

我想我有两个选择.

  1. 安装JDK7并将其用作默认值.
  2. 将JDK8降级为JDK7.

我认为降级可能是一个不错的选择,但我无法做任何一个.

Vas*_*ych 10

在默认配置中安装JRE/JDK OpenJDK 7默认安装在Ubuntu 12.10及更高版本中.安装Java,apt-get很容易:

sudo apt-get update

java -version
Run Code Online (Sandbox Code Playgroud)

如果执行后我们有类似的东西:"程序java可以在以下包中找到",这意味着没有安装Java.所以,我们需要:

sudo apt-get install default-jre
Run Code Online (Sandbox Code Playgroud)

结果,Java Runtime Environment (JRE)将被安装.当我们想要安装时Java Development Kit (JDK),这需要用于编译Java-app(例如,Apache Ant,Apache Maven,Eclipse和IntelliJ IDEA),我们需要做:

sudo apt-get install default-jdk
Run Code Online (Sandbox Code Playgroud)

现在,安装了Java.

安装OpenJDK 7(可选)

sudo apt-get install openjdk-7-jre
Run Code Online (Sandbox Code Playgroud)

执行Java Runtime Environment (JRE)后将安装.因为Java Development Kit (JDK),我们执行:

sudo apt-get install openjdk-7-jdk
Run Code Online (Sandbox Code Playgroud)

安装Oracle JDK(可选) Oracle JDK是官方JDK,但现在,Oracle不支持它,就像在Ubuntu中安装默认一样.

我们可以通过apt-get安装它,但在我们需要执行下一个命令之前:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
Run Code Online (Sandbox Code Playgroud)

之后,我们必须选择所需的版本并执行:

对于Oracle JDK 6

sudo apt-get install oracle-java6-installer
Run Code Online (Sandbox Code Playgroud)

对于Oracle JDK 7

sudo apt-get install oracle-java7-installer
Run Code Online (Sandbox Code Playgroud)

对于Oracle JDK 8

sudo apt-get install oracle-java8-installer
Run Code Online (Sandbox Code Playgroud)

对于Oracle JDK 9

sudo apt-get install oracle-java9-installer
Run Code Online (Sandbox Code Playgroud)

管理Java(可选) 当我们安装了Java版本时,我们可以选择其中一个作为默认值:

sudo update-alternatives --config java
Run Code Online (Sandbox Code Playgroud)

结果我们会看到这样的事情:

There are 2 choices for the alternative java (providing /usr/bin/java).

Selection    Path                                            Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-7-oracle/jre/bin/java          1062      auto mode
  1            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      manual mode
  2            /usr/lib/jvm/java-7-oracle/jre/bin/java          1062      manual mode

Press enter to keep the current choice[*], or type selection number:
Run Code Online (Sandbox Code Playgroud)

我们可以在屏幕上看到它: 在此输入图像描述

我们可以做同样的动作来选择编译器(javac):

sudo update-alternatives --config javac
Run Code Online (Sandbox Code Playgroud)

此命令可用于选择其他java组件,例如:keytool,javadoc和jarsigner.

安装"JAVA_HOME" 要安装**JAVA_HOME**:

sudo update-alternatives --config java
Run Code Online (Sandbox Code Playgroud)

结果如:

There are 2 choices for the alternative java (providing /usr/bin/java).

Selection    Path                                            Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-7-oracle/jre/bin/java          1062      auto mode
  1            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      manual mode
  2            /usr/lib/jvm/java-7-oracle/jre/bin/java          1062      manual mode

Press enter to keep the current choice[*], or type selection number:
Run Code Online (Sandbox Code Playgroud)

我们可以看到java的路径是:

/usr/lib/jvm/java-7-oracle
/usr/lib/jvm/java-6-openjdk-amd64
/usr/lib/jvm/java-7-oracle
Run Code Online (Sandbox Code Playgroud)

现在,我们需要复制其中一种方法并将其粘贴到 /etc/environment:

sudo nano /etc/environment
Run Code Online (Sandbox Code Playgroud)

在文件中我们将添加一个路径(其中YOUR_PATH - 是所需java版本的路径,例如:" /usr/lib/jvm/java-7-oracle"):

JAVA_HOME="/usr/lib/jvm/java-7-oracle"
Run Code Online (Sandbox Code Playgroud)

屏幕上:在此输入图像描述

现在,我们需要重启此文件:

source /etc/environment
Run Code Online (Sandbox Code Playgroud)

要检查它,我们可以:

echo $JAVA_HOME
Run Code Online (Sandbox Code Playgroud)

屏幕上:在此输入图像描述

当我们现在有输入方式(在我们的例子中为"/ usr/lib/jvm/java-7-oracle")时,它意味着我们成功地做到了.换句话说,我们需要更加专心,并检查所有这些步骤.