openjdk-18.sh 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #!/bin/bash
  2. # Author: yeho <lj2007331 AT gmail.com>
  3. # BLOG: https://linuxeye.com
  4. #
  5. # Notes: OneinStack for CentOS/RedHat 7+ Debian 9+ and Ubuntu 16+
  6. #
  7. # Project home page:
  8. # https://oneinstack.com
  9. # https://github.com/oneinstack/oneinstack
  10. Install_OpenJDK18() {
  11. pushd ${oneinstack_dir}/src > /dev/null
  12. # 下载OpenJDK 18
  13. if [ "${OS}" == "CentOS" ] || [ "${OS}" == "RHEL" ]; then
  14. # CentOS/RHEL
  15. if [ "${OS_VER}" == "7" ]; then
  16. yum -y install java-18-openjdk java-18-openjdk-devel
  17. elif [ "${OS_VER}" == "8" ]; then
  18. dnf -y install java-18-openjdk java-18-openjdk-devel
  19. fi
  20. elif [ "${OS}" == "Debian" ] || [ "${OS}" == "Ubuntu" ]; then
  21. # Debian/Ubuntu
  22. apt-get update
  23. apt-get -y install openjdk-18-jdk
  24. fi
  25. # 设置JAVA_HOME
  26. if [ -d "/usr/lib/jvm/java-18-openjdk" ]; then
  27. JAVA_HOME="/usr/lib/jvm/java-18-openjdk"
  28. elif [ -d "/usr/lib/jvm/java-18-openjdk-amd64" ]; then
  29. JAVA_HOME="/usr/lib/jvm/java-18-openjdk-amd64"
  30. fi
  31. # 配置环境变量
  32. if [ -n "${JAVA_HOME}" ]; then
  33. [ -z "`grep ^'export JAVA_HOME=' /etc/profile`" ] && echo "export JAVA_HOME=${JAVA_HOME}" >> /etc/profile
  34. [ -z "`grep ^'export CLASSPATH=' /etc/profile`" ] && echo "export CLASSPATH=.:\${JAVA_HOME}/lib/dt.jar:\${JAVA_HOME}/lib/tools.jar" >> /etc/profile
  35. [ -z "`grep ^'export PATH=' /etc/profile`" ] && echo "export PATH=\${JAVA_HOME}/bin:\$PATH" >> /etc/profile
  36. [ -n "`grep ^'export PATH=' /etc/profile`" -a -z "`grep \${JAVA_HOME} /etc/profile`" ] && sed -i "s@^export PATH=\(.*\)@export PATH=\${JAVA_HOME}/bin:\1@" /etc/profile
  37. . /etc/profile
  38. # 验证安装
  39. java -version
  40. if [ $? -eq 0 ]; then
  41. echo "${CSUCCESS}OpenJDK 18 installed successfully! ${CEND}"
  42. else
  43. echo "${CFAILURE}OpenJDK 18 install failed, Please Contact the author! ${CEND}"
  44. kill -9 $$; exit 1;
  45. fi
  46. else
  47. echo "${CFAILURE}OpenJDK 18 install failed, Please Contact the author! ${CEND}"
  48. kill -9 $$; exit 1;
  49. fi
  50. popd > /dev/null
  51. }