gpt4 book ai didi

java - Bash shell 脚本 : How to set JAVA_HOME environment variable

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:50:41 27 4
gpt4 key购买 nike

使用 openSUSE,我下载了 jdk1.6.0_24 的 Oracle rpms,我想将 java home 环境变量设置为/usr/java/jdk1.6.0_24 但/etc/alternatives 系统无法自动检测到此安装JDK。 Update-alternatives 或任何找不到 jdk 的东西。

所以,我想在 BASH 脚本中手动检测 JAVA 主目录。

如果我运行这个命令: sudo find/usr -name 'jdk1.6*' ,我得到这个结果:

/usr/java/jdk1.6.0_24

如何将结果通过管道传递到环境变量中?我想做类似的事情

#!/bin/bash
read in JAVA_HOME var from a file
if file doesnt exist
sudo find /usr -name 'jdk1.6*'
prompt user for which jdk is correct
set that choice to a variable
add the JDK to alternatives if it is missing
save variable to a file and dont prompt next time
set the alternatives java choice
fi
echo $JAVA_HOME

最佳答案

有点像

#!/bin/bash
function validate_java_home {
if [ -z ${JAVA_HOME} ]
then
# do something if the file doesn't provide ${JAVA_HOME}
else
if [ ! -e ${JAVA_HOME} ]
then
# do something if the file provides a non existent ${JAVA_HOME}
fi
fi
}

if [ ! -e ${YOUR_FILE_NAME_CONTAINING_JAVA_HOME} ]
then
JAVA_HOME_CANDIDATES=$(find /usr -name 'jdk1.6*')
echo "Found the following candidates for JAVA_HOME, reply with the one you want then press return"
echo ""
echo $JAVA_HOME_CANDIDATES
read USER_SUBMITTED_JAVA_HOME
echo "You chose $USER_SUBMITTED_JAVA_HOME"
JAVA_HOME=${USER_SUBMITTED_JAVA_HOME}
else
. ${YOUR_FILE_NAME_CONTAINING_JAVA_HOME}
fi
validate_java_home
export ${JAVA_HOME}

我还没有测试过,但希望你能理解要点(我想说根据格伦 jack 曼的回答使用 select 更简洁/友好,不知道它存在所以我很高兴我读到了这个问题! )

关于java - Bash shell 脚本 : How to set JAVA_HOME environment variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5437224/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com