即使我有 JAVA 8,也无法安装 Jenkins

Can't Install Jenkins even though I have JAVA 8

Ubuntu 14.04 LTS

根据 ,我需要 JAVA 8,所以我下载了 JDK 和 JRE。不幸的是,当再次尝试安装 jenkins 时

sudo apt-get install jenkins

我仍然收到错误消息

Aborting
invoke-rc.d: initscript jenkins, action "stop" failed.
dpkg: error processing archive /var/cache/apt/archives/jenkins_2.176.2_all.deb (--unpack):
 subprocess new pre-removal script returned error exit status 1
Found an incorrect Java version
Java version found:
java version "1.7.0_201"
OpenJDK Runtime Environment (IcedTea 2.6.17) (7u211-2.6.17-0ubuntu0.1)
OpenJDK 64-Bit Server VM (build 24.201-b00, mixed mode)

检查我的 $PATH 并显示以下内容

/usr/lib/jvm/jre1.8.0_221/bin:/usr/lib/jvm/jdk1.8.0_211/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

应该使用的java是8。 连运行宁

java -version

满足了我的期望

java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)

如果我安装了 JAVA 8,为什么会出现 java 版本错误?我还需要做些什么来确保 JAVA 8 是默认值?

我尝试失败

sudo apt-get install openjdk-8-jre

得到了

Unable to locate package openjdk-8-jre

旁注,当尝试从侧边栏 运行 eclipse 时,我也收到有关 JAVA 版本的错误。 运行 命令行中的 eclipse 工作正常。

是否必须使用我的 /usr/lib/jvm 文件夹中的默认 java 符号 link?它指向 Java 7 openjdk... 执行 ls -la 显示 links

default-java -> java-1.7.0-openjdk-amd64
java-1.7.0-openjdk-amd64 -> java-7-openjdk-amd64
java-7-openjdk-amd64

如果可能,请尝试在 docker 容器中 运行 Jenkins。它会处理此类问题。

查看 update-java-alternatives 和 update-alternatives,我遇到了这个 answer

我检查了 java

的当前备选方案
sudo update-alternatives --config java

得到了

There is only one alternative in link group java (providing /usr/bin/java): /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
Nothing to configure.

使用我找到的答案之一,我为执行以下命令的 java 可执行文件添加了替代方案

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jre1.8.0_221/bin/java 1

然后我再次查看我的备选 java 在列表中可用

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-7-openjdk-amd64/jre/bin/java   1071      auto mode
* 1            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      manual mode
  2            /usr/lib/jvm/jre1.8.0_221/bin/java               1         manual mode

Press enter to keep the current choice[*], or type selection number: 

然后我输入2,尝试安装,成功了。我现在甚至可以从侧边栏 运行 eclipse,而不必从命令行 运行 它。

我很欣赏 RealSkeptic 的正确方向!

您可以使用以下任一选项:

1) 下载基于 Docker 的 Jenkins 映像并使用以下命令将 Jenkins 启动为容器:

    - docker pull jenkins
    - docker run -p 8080:8080 -p 50000:50000 -v volume_name:/var/jenkins_home --name jenkins -d jenkins

2) 下载 jenkins.war 文件并使用以下命令提取 war 文件:

    java -jar jenkins.war &