Java9에 대한 별칭 설정

Java9에 대한 별칭 설정

저는 배쉬를 처음 접했습니다. 내 컴퓨터에 여러 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
}

이것은 쉘 기능입니다 javav(기존 도구와 충돌하는 경우 이름을 바꾸십시오). .bash_profile또는 파일 에 넣을 수도 .bashrc있고 자체 파일에 넣을 수도 있습니다(이 경우에는 를 사용하여 가져옵니다 source filename).

버전 번호를 첫 번째 인수로 사용하고, JAVA_HOME적절한 디렉터리 경로로 설정하고 나머지 명령줄 인수로 실행되기 전에 시작 부분에 PATH포함됩니다 . 실행 파일은 에 있을 것으로 추정되며, 에 있기 때문에 이것이 실행될 Java 버전입니다.$JAVA_HOME/binjavajava$JAVA_HOME/binPATH

즉, 다음과 같이 사용할 수 있습니다.

$ javav 9 other arguments to java here

JAVA_HOME함수가 올바른 디렉토리 설정을 사용했다고 가정하면 Java 9가 실행되어 실행 파일 에 PATH전달됩니다 .other arguments to java herejava

참고: 저는 Java 개발자가 아니며 위의 방식으로 설정하는 것이 적합한지는 모르겠지만 PATH필요에 맞게 수정할 수 있습니다.

관련 정보