[英]Java version updated on package installation
I have issue with updated symlink on java after maven installation. 安装Maven之后,我在Java上更新了符号链接时遇到了问题。 I use simple docker file:
我使用简单的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"]
During build I've got next log: 在构建期间,我有下一个日志:
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
So as you can see maven brings java 7 and update-alternatives makes it default version. 如您所见,maven带来了Java 7,而update-alternatives使其成为默认版本。 So I have several questions:
所以我有几个问题:
I think all this is distro specific. 我认为所有这些都是特定于发行版的。
As in: In your chosen distro (Ubuntu?) the particular maven package that you are installing has a dependency to OpenJDK 7 (and not 8). 如下所示:在您选择的发行版(Ubuntu?)中,您要安装的特定Maven软件包具有对OpenJDK 7(而非8)的依赖。
I see two options for a Java 8 / maven setup: 我看到Java 8 / maven设置的两个选项:
I tried out your setup see 我尝试了您的设置,请参见
https://github.com/BITPlan/docker-stackoverflowanswers/tree/master/33324470 https://github.com/BITPlan/docker-stackoverflowanswers/tree/master/33324470
and by running: 并通过运行:
./build
./run
i entered a bash to see what the situation is: 我参加了一场狂欢,看看情况如何:
Java Version 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)
So by default this distro uses an OpenJDK 1.7 因此,默认情况下,此发行版使用OpenJDK 1.7
Maven Version 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"
The maven uses Oracle Java 1.8 Maven使用Oracle Java 1.8
Now you have got multiple options 现在您有多种选择
Select another default java as outlined in 选择另一个默认的Java,如
https://askubuntu.com/questions/272187/setting-jdk-7-as-default 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
Switch the default java version as outlined in: 切换默认的Java版本,如下所示:
https://askubuntu.com/questions/491778/switch-to-oracle-java-jdk-in-14-04 https://askubuntu.com/questions/491778/switch-to-oracle-java-jdk-in-14-04
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.