首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改docker中的JAVA_HOME

更改docker中的JAVA_HOME
EN

Stack Overflow用户
提问于 2017-09-18 18:58:15
回答 2查看 25.3K关注 0票数 11

我想要停靠的遗留web应用程序使用了一些旧的类,比如com/sun/image/codec/jpeg/ImageFormatException,这些类在Java SE7之前就得到了支持。现在,在docker容器中,默认的jdk获取(在安装tomcat-6容器时)是

代码语言:javascript
复制
java version "1.7.0_131"
OpenJDK Runtime Environment (IcedTea 2.6.9) (7u131-2.6.9-2~deb8u1)

OpenJdk不支持这些类

我使用update-alternatives安装Oracle Jdk7.80

加载容器后,在给出java -version时,我会得到

代码语言:javascript
复制
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)

但是,进入容器后的echo $JAVA_HOME将提供/docker-java-home/jre,它再次指向OpenJdk。如何将JAVA_HOME设置为我安装的Oracle Jdk主目录?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-18 19:14:17

您可以通过在docker文件中使用ENV命令来简单地设置/更改docker镜像的环境变量:

代码语言:javascript
复制
ENV JAVA_HOME /path/to/java
票数 21
EN

Stack Overflow用户

发布于 2019-05-08 15:30:37

如果您的基本映像默认情况下包含OpenJDK,并且如果您希望在映像中使用OracleJDK,只需将以下命令添加到您的dockerfile并构建映像,然后启动您的映像,您的映像将拥有oracle JDK。

代码语言:javascript
复制
RUN yum -y remove java***
RUN yum install -y jdk-8u212-linux-x64.rpm && \
    echo "JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")" | tee 
    -a /etc/profile && source /etc/profile && echo $JAVA_HOME && \
    rm jdk-8u212-linux-x64.rpm && \ 
    alternatives --set java /usr/java/jdk1.8.0_212-amd64/jre/bin/java
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46277631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档