linux下jdk环境安装
# 源码安装
# 源码
# install jdk
cd $WORKDIR/soft/jdk \
&& tar -zxvf jdk-8u241-linux-x64.tar.gz \
&& mv jdk1.8.0_241/ /usr/local/java/ \
&& rm -rf *.gz
1
2
3
4
5
2
3
4
5
# docker镜像
在dockerfile echo添加环境变量,或者要在一个文件中输入多行文本,使用\n即可
列:dockerfile echo添加JDK环境变量
FROM debian:latest
ADD jdk1.8.0 /opt/jdk1.8.0/
# 用echo添加多行内容
RUN echo 'export JAVA_HOME=/opt/jdk1.8.0 \n\
export JRE_HOME=/opt/jdk1.8.0/jre \n\
export CLASSPATH=.:$JAVA_HOME/lib:/dt.jar:$JAVA_HOME/lib/tools.jar \n\
PATH=$PATH:$JAVA_HOME/bin \n\
ulimit -u 4096'\
>> ~/.bashrc
CMD ["/bin/bash"]
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
要设置ENV配置;
# 设置JAVA_HOME
在docker情况下要修改
/root/.bashrc
这个配置才有用;修改/etc/profile
失效;
vim /etc/profile
export JAVA_HOME=/usr/local/java
export JRE_HOME=/usr/local/java/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
1
2
3
4
5
6
7
2
3
4
5
6
7
注意这里
echo
多行;
第三种方式:调用去触发sh文件;
ENTRYPOINT ["/bin/bash", "./entrypoint.sh"]
1
docker中要修改/root/.bashrc
中设置,修改在/etc/profile
无效;在[entrypoint.sh
]中设置才有用;
echo 'export JAVA_HOME=/usr/local/java
export JRE_HOME=/usr/local/java/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
PATH=$PATH:$JAVA_HOME/bin ' >> /root/.bashrc
source /root/.bashrc
1
2
3
4
5
2
3
4
5
第四种方式:ENV 用于配置环境变量;**【Docker推荐用这种方式】**也可以;
ENV JAVA_HOME=/usr/local/java
ENV JRE_HOME=/usr/local/java/jre
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH=$PATH:$JAVA_HOME/bin
#定义工作目录
#ENV WORK_PATH /usr/local
#删除分割文件
#RUN rm $WORK_PATH/openjdksrc-*
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
方式一追加;
RUN cd /srv/app/soft/jdk \
&& tar -zxvf jdk-8u241-linux-x64.tar.gz \
&& mv jdk1.8.0_241/ /usr/local/java/
RUN echo 'export JAVA_HOME=/usr/local/java \n\
export JRE_HOME=/usr/local/java/jre \n\
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH \n\
PATH=$PATH:$JAVA_HOME/bin '\
>> /etc/profile
RUN source /etc/profile
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
方式二追加;
docker情况下;这种写进入的有问题;直接显示全部路径;部分参数会丢失;只适合直接用认为手动修改;
cat>>/etc/profile<<EOF
export JAVA_HOME=/usr/local/java
export JRE_HOME=/usr/local/java/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
export PATH=$PATH:$JAVA_HOME/bin
EOF
source /etc/profile
1
2
3
4
5
6
7
2
3
4
5
6
7
写入后:$JAVA_HOME
相关都丢失;
export JAVA_HOME=/usr/local/java
export JRE_HOME=/usr/local/java/jre
export CLASSPATH=.:/lib/dt.jar:/lib/tools.jar:/lib:
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/bin
1
2
3
4
2
3
4
说明:
- 其中,<<EOF 表示当遇到EOF时结束输入;
- cat>test1.txt<<EOF 这间没有空格;
- $号要加\转义字符;
示范:
#! /bin/bash
filename="/test/filename.txt"
cat>"${filename}"<<EOF
hello world
代码改变世界 Coding Changes the World
100 \$
她买了张彩票,中了3,300多万美元。
She bought a lottery ticket and won more than\$ 33 million.
EOF
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
上次更新: 2022/04/15, 05:41:32