java - 自动将 JAVA_HOME 设置为最新的 JDK 版本
问题描述
我需要将 JAVA_HOME 设置为 64_bit 文件夹中的最新 JDK 版本。目前,我将其设置为:export JAVA_HOME=/opt/java/hotspot/8/64_bit/jdk1.8.0_172
那么有什么方法可以自动获取最新的 JDK 版本,因为每次我需要在新版本到来时更改脚本。
谢谢
解决方案
它可以在几行 shell 脚本中完成。可能有无数种方法可以实现这一点。以下代码依赖sort
's-V
标志来查找最新版本。
#!/bin/sh
BASE_DIR=/opt/java/hotspot/8/64_bit/
version=$(ls $BASE_DIR | grep -Eo "([0-9]+\.?){3}(_[0-9]+)?" | sort -Vr | head -1)
if [ -n "$version" ]; then
folder=$(find $BASE_DIR -maxdepth 1 -name "*${version}*")
echo "Setting JAVA_HOME to $folder."
JAVA_HOME="$folder"
export JAVA_HOME
else
echo 1>&2 "No JDK installation found in ${BASE_DIR}!"
exit 1
fi
推荐阅读
- asp.net-core - 在单个 BadRequest 中返回模型绑定错误和流利验证错误
- java - 如何为一个类的所有实例调用一个方法,这些实例都在一个列表中?
- c# - 如何在 TLSharp 重用 session.dat?
- reactjs - 在反应中更改汉堡菜单的背景颜色
- kotlin - 将 `if...else null` 作为 ?./?: 链的一部分编写的 Kotlin 惯用方式是什么?
- javascript - 克隆的 jquery 元素正在向父级触发事件而不是孩子?
- unity3d - 当我使用带有排行榜的谷歌移动广告时出现错误
- javascript - 在滚动时淡入淡出,如果内容已经在可视区域中怎么办?
- ruby - Ruby 中的“只追加”/“只写”哈希
- java - 请求多个权限时Android权限被拒绝