Help us understand the problem. What is going on with this article?

direnv で java を切り替える

More than 1 year has passed since last update.

direnv は、ディレクトリごとに環境変数を切り替えられるツールで、複数のプロジェクトを並行開発している場合などに便利です。

Mac なら、以下のような関数を ~/.direnvrc に定義しておくと・・・

# ~/.direnvrc
use_java() {
    if [ "$#" -ne 1 ]; then
    echo "usage: use java VERSION" >&2
    return 1
  fi
  local v
  v="$1"
  if [ "$v" -le "8" ]; then
    v="1.$v"
  fi
  export JAVA_HOME="$(/usr/libexec/java_home -v "$v")"
  PATH_add $JAVA_HOME/bin
}

各プロジェクトでは、こんな風に書くだけでOK

# [プロジェクトのディレクトリ]/.envrc
use_java 11 # JDK 11 を使う

なお、direnv には use_hogeuse hoge と書ける、(微妙に)便利な機能があるので、こうも書けます。

use java 11

なお、Java以外の言語については use が標準で提供されています。

https://github.com/direnv/direnv/blob/master/stdlib.sh
https://github.com/direnv/direnv/blob/master/man/direnv-stdlib.1.md

tonluqclml
エムスリーでソフトウェアエンジニアしています。仕事ではRubyもScalaもPythonもBashもなんでもやる雑食系。 Twitter:https://twitter.com/doloopwhile 昔の個人ブログ:http://doloopwhile.hatenablog.com/ 勤務先ブログ: https://www.m3tech.blog/
http://doloopwhile.hatenablog.com/
m3dev
インターネット、最新IT技術を活用し日本・世界の医療を改善することを目指します
https://m3.recruitment.jp/engineer/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away