如何将正确的 Java 版本导出到 Bash 脚本中

如何将正确的 Java 版本导出到 Bash 脚本中

Ubuntu 18.04.6 LTS
Bash 4.4.0

我的 Linux 机器上有 4 个版本的 Java。我还在这个机器上运行了多个 MC 游戏服务器。当我运行某些需要 Java 8 的服务器时,我会像这样指向 Java 8:

#!/bin/bash

java="/usr/lib/jvm/java-8-openjdk-amd64/bin"  

当我运行某些需要 Java 16 的服务器时,我会像这样指向 Java 16:

#!/bin/bash

java="/usr/lib/jvm/java-16-oracle/bin"  

因此,为了正确地将这些版本的 Java 导入变量,我编辑了 /etc/profile 文件以及所有内容#== Java 7以下是我添加的:

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

if [ "${PS1-}" ]; then
  if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi

#== Java 7
#== ======
JAVA7=/usr/lib/jvm/zulu7-ca-amd64
PATH=$PATH:$HOME/bin:$JAVA7/bin

#== Java 8
#== ======
JAVA8=/usr/lib/jvm/java-8-openjdk-amd64
PATH=$PATH:$HOME/bin:$JAVA8/bin

#== Java 11
JAVA11=/usr/lib/jvm/java-11-openjdk-amd64
PATH=$PATH:$HOME/bin:$JAVA11/bin

#== Java 16
JAVA16=/usr/lib/jvm/java-16-oracle
PATH=$PATH:$HOME/bin:$JAVA16/bin

export JAVA7
export PATH
export JAVA8
export PATH
export JAVA11
export PATH
export JAVA16
export PATH

如果我在脚本中使用 JAVA16 时这是正确的,那么如何在启动脚本中调用它?

相关内容