簡體   English   中英

Java版本已在安裝軟件包時更新

[英]Java version updated on package installation

安裝Maven之后,我在Java上更新了符號鏈接時遇到了問題。 我使用簡單的docker文件:

FROM java:8
RUN ["java", "-version"]
RUN apt-get update && apt-get install -y maven && rm -rf /var/lib/apt/lists/*
RUN ["java", "-version"]
CMD ["java", "-version"]

在構建期間,我有下一個日志:

Step 0 : FROM java:8
 ---> 4cd29d33e3f4
Step 1 : RUN java -version
 ---> Running in 1c528620f318
openjdk version "1.8.0_66-internal"
OpenJDK Runtime Environment (build 1.8.0_66-internal-b01)
OpenJDK 64-Bit Server VM (build 25.66-b01, mixed mode)
 ---> d25e96460a85
Removing intermediate container 1c528620f318
Step 2 : RUN apt-get update && apt-get install -y maven && rm -rf /var/lib/apt/lists/*
....installation logs....
Setting up openjdk-7-jre-headless:amd64 (7u79-2.5.6-1~deb8u1) ...
update-alternatives: using /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/rmid to provide /usr/bin/rmid (rmid) in auto mode
update-alternatives: using /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java to provide /usr/bin/java (java) in auto mode

如您所見,maven帶來了Java 7,而update-alternatives使其成為默認版本。 所以我有幾個問題:

  1. 為什么已經安裝Java 8的Maven需要Java 7? 為什么依賴關系不透明?
  2. 是否可以不安裝Java 7而改用Java 8?
  3. 如果不是,將Java 8設置為默認值的最佳方法是什么? 刪除Java 7,配置更新替代品還是其他?

我認為所有這些都是特定於發行版的。

如下所示:在您選擇的發行版(Ubuntu?)中,您要安裝的特定Maven軟件包具有對OpenJDK 7(而非8)的依賴。

我看到Java 8 / maven設置的兩個選項:

  • 從tgz安裝Maven
  • 創建自己的Maven包

我嘗試了您的設置,請參見

https://github.com/BITPlan/docker-stackoverflowanswers/tree/master/33324470

並通過運行:

./build
./run

我參加了一場狂歡,看看情況如何:

Java版本

root@940c282bd6ad:/# java -version
java version "1.7.0_79"
OpenJDK Runtime Environment (IcedTea 2.5.6) (7u79-2.5.6-1~deb8u1)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)

因此,默認情況下,此發行版使用OpenJDK 1.7

Maven版本

root@940c282bd6ad:/# mvn -version
Apache Maven 3.0.5
Maven home: /usr/share/maven
Java version: 1.8.0_66-internal, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-8-openjdk-amd64/jre
Default locale: en, platform encoding: UTF-8
OS name: "linux", version: "4.1.10-boot2docker", arch: "amd64", family: "unix"

Maven使用Oracle Java 1.8

現在您有多種選擇

選擇另一個默認的Java,如

https://askubuntu.com/questions/272187/setting-jdk-7-as-default

root@940c282bd6ad:/# 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/java-8-openjdk-amd64/jre/bin/java   1069      manual mode

切換默認的Java版本,如下所示:

https://askubuntu.com/questions/491778/switch-to-oracle-java-jdk-in-14-04

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM