centos如何将jdk更新为18
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos如何将jdk更新为18相关的知识,希望对你有一定的参考价值。
百度知道centos如何将jdk更新为18
wllW5
超过287用户采纳过TA的回答
关注
成为第13位粉丝
centos7安装配置jdk.18
1、查看是否安装了Java 在linux上执行 java -version, 如下图所示: 如果出现java版本号说明已经安装过java 查看内置JDK
卸载内置JDK 2、下载安装JDK 2、新建/usr/local/java,命令:mkdir -p /usr/local/java 3、把jdk解压到java目录下,命令:tar -zxvf /usr/local/jdk-8u191-linux-x64.tar.gz -C /usr/local/java 我这里使用的是绝对路径,也可以进入到具体的目录下,使用相对路径进行操作即可 3、配置环境变量 执行vim /etc/profile 命令 输入i,然后可以编辑文件;变编辑完后输入esc键,然后输入:wq则保存退出 profile 文件最后加入如下配置: export PATH="/usr/local/java/jdk1.8.0_191/bin:$PATH" 参考技术A centos7安装配置jdk.18
1、查看是否安装了Java 在linux上执行 java -version, 如下图所示: 如果出现java版本号说明已经安装过java 查看内置JDK
卸载内置JDK 2、下载安装JDK 2、新建/usr/local/java,命令:mkdir -p /usr/local/java 3、把jdk解压到java目录下,命令:tar -zxvf /usr/local/jdk-8u191-linux-x64.tar.gz -C /usr/local/java 我这里使用的是绝对路径,也可以进入到具体的目录下,使用相对路径进行操作即可 3、配置环境变量 执行vim /etc/profile 命令 输入i,然后可以编辑文件;变编辑完后输入esc键,然后输入:wq则保存退出 profile 文件最后加入如下配置: export PATH="/usr/local/java/jdk1.8.0_191/bin:$PATH" 参考技术B centos7安装配置jdk.18
1、查看是否安装了Java 在linux上执行 java -version, 如下图所示: 如果出现java版本号说明已经安装过java 查看内置JDK
卸载内置JDK 2、下载安装JDK 2、新建/usr/local/java,命令:mkdir -p /usr/local/java 3、把jdk解压到java目录下,命令:tar -zxvf /usr/local/jdk-8u191-linux-x64.tar.gz -C /usr/local/java 我这里使用的是绝对路径,也可以进入到具体的目录下,使用相对路径进行操作即可 3、配置环境变量 执行vim /etc/profile 命令 输入i,然后可以编辑文件;变编辑完后输入esc键,然后输入:wq则保存退出 profile 文件最后加入如下配置: export PATH="/usr/local/java/jdk1.8.0_191/bin:$PATH" 参考技术C 首先查看是否安装了Java 在linux上执行 java -version, 如果出现java版本号说明已经安装过java 查看内置JDK
卸载内置JDK 2、下载安装JDK 2、新建/usr/local/java,命令:mkdir -p /usr/local/java 3、把jdk解压到java目录下,命令:tar -zxvf /usr/local/jdk-8u191-linux-x64.tar.gz -C /usr/local/java 我这里使用的是绝对路径,也可以进入到具体的目录下,使用相对路径进行操作即可 3、配置环境变量 执行vim /etc/profile 命令 输入i,然后可以编辑文件;变编辑完后输入esc键,然后输入:wq则保存退出 profile 文件最后加入如下配置: export PATH="/usr/local/java/jdk1.8.0_191/bin:$PATH" 参考技术D 查看是否安装了Java 在linux上执行 java -version, 如果出现java版本号说明已经安装过java 查看内置JDK
卸载内置JDK 2、下载安装JDK 2、新建/usr/local/java,命令:mkdir -p /usr/local/java 3、把jdk解压到java目录下,命令:tar -zxvf /usr/local/jdk-8u191-linux-x64.tar.gz -C /usr/local/java 我这里使用的是绝对路径,也可以进入到具体的目录下,使用相对路径进行操作即可 3、配置环境变量 执行vim /etc/profile 命令 输入i,然后可以编辑文件;变编辑完后输入esc键,然后输入:wq则保存退出 profile 文件最后加入如下配置: export PATH="/usr/local/java/jdk1.8.0_191/bin:$PATH"
将 gitlab JDK 更新为 JDK17(VM 没有互联网连接)
【中文标题】将 gitlab JDK 更新为 JDK17(VM 没有互联网连接)【英文标题】:Update gitlab JDK to JDK17 (VM doesn't have internet connection) 【发布时间】:2021-12-07 06:03:34 【问题描述】:我正在使用 Gitlab 构建一个使用 ant
的 Java 工具
该工具需要 JDK 17,但是ant
JDK 版本是 11,我正在尝试更改它。
所以我尝试了很多使用远程存储库或远程下载站点的解决方案,但经过一些尝试后我发现用于构建该工具的 VM 未连接到互联网(尝试 ping google 或我的 IP 地址不起作用) .
所以我尝试将 JDK 17 (openjdk-17_linux-x64_bin.tar.gz
) 与工具源代码一起上传到同一个包中并安装在那里。
这就是问题所在,我不知道该怎么做,因为我不使用 linux,但我几乎尝试了互联网上的所有内容。
这些命令中的每一个都在 .gitlab-ci.yml
文件中使用,用于 gitlab 管道。
以下是我迄今为止尝试过的一些示例:
- sudo cp /builds/project/openjdk-17_linux-x64_bin.tar.gz /usr/lib/jvm
- sudo tar zxvf "/usr/lib/jvm/openjdk-17_linux-x64_bin.tar.gz" -C /usr/lib/jvm
- echo "JAVA_HOME=/usr/lib/jvm/jdk-17" | sudo tee -a /etc/profile
- echo "PATH=$PATH:$HOME/bin:$JAVA_HOME/bin" | sudo tee -a /etc/profile
- echo "export JAVA_HOME" | sudo tee -a /etc/profile
- echo "export JRE_HOME" | sudo tee -a /etc/profile
- echo "export PATH" | sudo tee -a /etc/profile
- sudo cat /etc/profile
- echo "JAVA_HOME=/usr/lib/jvm/jdk-17" | sudo tee -a /.bashrc
- echo "PATH=$PATH:$JAVA_HOME/bin" | sudo tee -a /.bashrc
- echo "JAVA_HOME='/usr/lib/jvm/jdk-17' | sudo tee -a /etc/environment"
- export JAVA_HOME=/usr/lib/jvm/jdk-17
- export PATH=$PATH:$JAVA_HOME/bin
经过这些命令的大量组合后,sudo update-alternatives --config java
的输出仍然是:
openjdk version "11.0.12" 2021-07-20
OpenJDK Runtime Environment (build 11.0.12+7-post-Debian-2deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.12+7-post-Debian-2deb10u1, mixed mode, sharing)
但如果我尝试/usr/lib/jvm/jdk-17/bin/java -version
,它会打印出17
。
将默认 Java 版本设置为 17 的解决方案是什么。(对于 ant 使用 JDK-17 而不安装它的解决方案也很好,因为我需要 JDK-17 用于ant
)
【问题讨论】:
你不是在 docker 镜像中运行吗?能换个图吗?Using Docker executor with image organizationwebpage/ccp/vm:stable ...
这就是它所说的,所以我想您是对的,但我不知道如何更改图像。
是内部图片吗?你能和那些成功的人谈谈吗?
我不知道它是什么类型的图像,我不知道在哪里可以看到有关它的详细信息,并且确定它是否不是由团队中的某个人管理的(并且不是)我联系不上他们
创建一个新图像(可能基于您拥有的)并将其推送到 gitlab 信任的存储库,然后修改您的 gitlab yml
【参考方案1】:
既然您已经找到了一种随时更改 jdk 的方法,您可能真的需要考虑更改 CI 的基本映像以节省大量时间。此步骤将提高您的 CI 速度。执行此操作的步骤也相当简单。
-
编写自己的 Dockerfile
以下只是一个伪代码。你可以看看dockerfile builder的描述
FROM your-original-image. This is what you have in your image tag in the gitlab-ci file.
COPY jdk-17-linux-x64.tar.gz /usr/lib/jvm
RUN sudo tar zxvf "/usr/lib/jvm/jdk-17-linux-x64.tar.gz" -C /usr/lib/jvm \
&& sudo \cp -r /usr/lib/jvm/jdk-17 /usr/lib/jvm/java-1.11.0-openjdk-amd64 \
&& sudo \cp -r /usr/lib/jvm/jdk-17 /usr/lib/jvm/default-java \
&& sudo \cp -r /usr/lib/jvm/jdk-17 /usr/lib/jvm/java-11-openjdk-amd64 \
&& sudo \cp -r /usr/lib/jvm/jdk-17 /usr/lib/jvm/openjdk-11 \
&& sudo update-alternatives --remove-all java \
&& sudo update-alternatives --remove-all javac \
&& sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-17/bin/java 1
-
构建 docker 镜像
docker build . -t dockerId/Name-of-your-image-you-want:latest
-
使用 docker push 上传 docker 镜像
docker push dockerId/Name-of-your-image-you-want:latest
-
将你的 gitlab-ci.yaml 中的图片标签改为
dockerId/Name-of-your-image-you-want:latest
【讨论】:
这在问题的cmets中已经有人提出了。问题是,容器由另一个团队管理,他们将它用于多个项目,因此很难更改这些。我也不能创建自己的,因为部署应该只在这个项目中完成......但是感谢您的回复,这可以帮助其他遇到问题的人。【参考方案2】:我找到了解决方案。
- sudo cp jdk-17-linux-x64.tar.gz /usr/lib/jvm
- sudo tar zxvf "/usr/lib/jvm/jdk-17-linux-x64.tar.gz" -C /usr/lib/jvm
- sudo \cp -r /usr/lib/jvm/jdk-17 /usr/lib/jvm/java-1.11.0-openjdk-amd64
- sudo \cp -r /usr/lib/jvm/jdk-17 /usr/lib/jvm/default-java
- sudo \cp -r /usr/lib/jvm/jdk-17 /usr/lib/jvm/java-11-openjdk-amd64
- sudo \cp -r /usr/lib/jvm/jdk-17 /usr/lib/jvm/openjdk-11
- sudo update-alternatives --remove-all java
- sudo update-alternatives --remove-all javac
- sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-17/bin/java 1
我在这里所做的是将 JDK-17 内容复制到 /usr/lib/jvm
文件夹中的所有文件夹中。因此,即使 docker 镜像使用的是 JDK-11,我还是使用随源代码上传的 JDK-17 重写它,现在该工具是使用 JKD-17 构建的。
PS:我知道这比较慢而且不专业,但就我而言,这比尝试从那些设置 docker 容器的人那里获得帮助更容易也更方便。
【讨论】:
以上是关于centos如何将jdk更新为18的主要内容,如果未能解决你的问题,请参考以下文章