저는 배쉬를 처음 접했습니다. 내 컴퓨터에 여러 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/bin
java
java
$JAVA_HOME/bin
PATH
즉, 다음과 같이 사용할 수 있습니다.
$ javav 9 other arguments to java here
JAVA_HOME
함수가 올바른 디렉토리 설정을 사용했다고 가정하면 Java 9가 실행되어 실행 파일 에 PATH
전달됩니다 .other arguments to java here
java
참고: 저는 Java 개발자가 아니며 위의 방식으로 설정하는 것이 적합한지는 모르겠지만 PATH
필요에 맞게 수정할 수 있습니다.