私は初めてバッシュに触れました。私のコンピュータに複数の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
必要に応じて変更できます。