为Java9设置别名

为Java9设置别名

我是 bash 新手。我的机器上安装了多个 java 版本,我想为所有版本创建一个别名。通常,java 的可执行文件位于文件夹 /Library//bin/java 中。我想创建别名,以便在 bash 中输入 java9 并执行 java9 的可执行文件(对于其他 java 版本也类似)。这个怎么做。

请注意,通常对于一个 java 版本,我添加 JAVA_HOME 并将路径附加到 PATH 中。但不知道如何做到这一点。

我正在阅读有关此内容的文章,看起来 eval 可能是一个选择,但不知道如何执行此操作。

答案1

javav () {
    local version="$1"
    shift

    case "$version" in
        8)  JAVA_HOME='/Library/some/path/java' \
            PATH="$JAVA_HOME/bin:$PATH" java "$@"
            ;;
      8.7)  JAVA_HOME='/Library/some/other/path/java' \
            PATH="$JAVA_HOME/bin:$PATH" java "$@"
            ;;
        9)  JAVA_HOME='/Library/some/other/path2/java' \
            PATH="$JAVA_HOME/bin:$PATH" java "$@"
            ;;
        *)  printf 'Unknown java version: %s\n' "$version" >&2
            return 1
    esac
}

这是一个 shell 函数javav(如果与任何现有工具冲突,请重命名)。您可以将其放入您的.bash_profile.bashrc文件中,或者放入其自己的文件中(在这种情况下,您需要使用 来获取它source filename)。

它采用版本号作为其第一个参数,并设置JAVA_HOME为相应目录的路径,并在使用其余命令行参数执行之前PATH包含$JAVA_HOME/bin在开头。java由于java可执行文件大概位于 中,$JAVA_HOME/bin并且由于它位于 中PATH,因此这就是将启动的 Java 版本。

这意味着您可以像这样使用它:

$ javav 9 other arguments to java here

JAVA_HOME假设该函数已使用正确的目录设置PATH,这应该启动 Java 9 并传递other arguments to java herejava可执行文件。

注意:我不是 Java 开发人员,我不知道设置PATH上面的方式是否有意义,但您可以修改它以满足您的需求。

相关内容