一応まとめ.作業途中にIntellijのスクショ取っとくべきだった….
今回はビルドにテスト,その他諸々をスクリプトで記述することによって自動化してしまおうという gradleというツールを使ってjavaでのI/Oの記述速度の比較をするプログラムを作る.その為の前準備の様な課題です.
とりあえずJavaでよく使われるIDEIntellijをダウンロードしてみよう. 一応学生は登録すればUltimate無料で使えたりします.後プラグイン入れたら他の言語も使えるよ.
次にgradleをinstall
$brew install gradle
一応この前にbrewの環境を更新しときたいので
$brew update $brew upgrade
ぐらいはしておいても良いんじゃないかなぁ.
次に今回はjavaを使うので最新版のJDKをinstallします. jDKのinstall Accept License AgreementのチェックいれてMacOSXのverをinstallしよう.112ぐらい使えば良いのではないかなぁ.sampleはいらないと思われる.
ダウンロードしたJavaの仕様書もほしいよねって事で.英語版のdocumentをDownloadします. Java Document
Downloadしたものは自分のMacOSXのDocumentディレクトリの中にjavaとか作るなりして置いてみよう. 参照するのはAPIが中心なので,落としたDocumentのAPIディレクトリ内のindex.htmlをブラウザからブックマークしていつでも見れるようにしておこう.
じゃぁ落としたjavaは112だよね.ということはjavaのverは最新の筈だ. 確認を込めて
$java -version
してみるとおそらく違うverを指している. 何故かと言うとこのjavaはシステムのjava.つまりAppleが用意してくれたJavaというわけ.
じゃぁ今落としたjavaはどこにあるのか. とりあえず確認してみよう
$where java
/usr/bin/java
javaはここを指している.ふむ.ならそこはどうなっているのだろう
$ls -l /usr/bin/java lrwxr-xr-x 1 root wheel 74 10 18 2015 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
/usr/bin/java
はリンク類ってるだけか.だったらそこを見てみよう
わかりやすいようにcdしてみると
$cd /System/Library/Frameworks/JavaVM.framework/Versions $ls 1.4 1.5 1.6 A CurrentJDK 1.4.2 1.5.0 1.6.0 Current
ここにはさっき落としたjavaは入ってなさそう.ではいったいdmgでinstallしたjavaはどこに入っているのだろう
javaには落としたversionを確認する(実際は後述する環境変数の設定の為ですが) java_homeというコマンドが実は用意されています. ただこのコマンドが置いてある場所はPATHが通ってないのでフルパスで
$/usr/libexec/java_home -V
とか打ってみます.Vオプションは今現在installしているjavaの一覧が見えます 試しにやってみると
$/usr/libexec/java_home -V Matching Java Virtual Machines (6): 1.8.0_112, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home 1.8.0_111, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home 1.8.0_60, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home 1.8.0_51, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home 1.6.0_65-b14-468, x86_64: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home 1.6.0_65-b14-468, i386: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home
これによるとさっきinstallした1.8.0_112はこの1番上/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home
にあるらしい.なるほど.
つまりdmgでinstallしたjavaファイルは/Library/Java/JavaVirtualMachines/
にversionごとdirectoryが生成されてそこに置かれる訳.
ではjavaのversionをこの最新版に変更しよう./usr/bin
で見たjavaのコマンド群はリンクが張られているだけなので,versionを指定できれば動的に変わるはずだ.
JAVAを利用する各ツールは環境変数$JAVA_HOME
で設定しているパスを確認している.
その部分を変更すれば良いという事になる.
指定方法は簡単.zshなら.zshrcぐらいに
$vim ~/.zshrc export JAVA_HOME=`/usr/libexec/java_home -v 1.8.0_112`
を付け加えれば大丈夫.その後設定を反映させたいので
$source .zshrc
しておこう.zshにloginシェルを変更したい場合は次のリンクでも参考にしてみよう. Homebrew で zsh を導入する | deadwood
では実際に作るのはまた後半で