java8 備忘録
[java]WindowsにJava8
JDKのダウンロードっていつのまにかログインが必要になったのか。
http://www.oracle.com/technetwork/java/javase/downloads/index.html
この頃は chocolatey(cinst java.jdk)でいれていたので気が付かなんだ。chocolatey にはまだjava8は置いてない。
素直にインストーラを落としてきてインストール。
環境変数 JAVA_HOME をつくって %JAVA_HOME%\bin にpathを通す。
切り替えは基本 junction でやっている(WindowsXPからWindows8まで運用してきたが今まで問題にあたったことはない)。
http://technet.microsoft.com/en-us/sysinternals/bb896768.aspx
いまなら mklink (Vista以降)のほうがいいのかもしれないが。
c:\dev\java-1.7.0-51
c:\dev\java-1.8.0
にインストールされている場合
>type jjava @ECHO OFF junction -d %JAVA_HOME% junction %JAVA_HOME% c:\dev\java-%1 @ECHO %JAVA_HOME%
なバッチファイルを作って
>jjava 1.7.0-51 c:\dev\java-1.7.0-51 >java -version java version "1.7.0_51" Java(TM) SE Runtime Environment (build 1.7.0_51-b13) Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode) >jjava 1.8.0 c:\dev\java-1.8.0 >java -version java version "1.8.0" Java(TM) SE Runtime Environment (build 1.8.0-b132) Java HotSpot(TM) 64-Bit Server VM (build 25.0-b70, mixed mode)
[java]MacにJava8
Mountaion Lionに素直にインストーラを落としてきてインストール。
おわったらJava8になった。
切り変えるには?
http://qiita.com/mas0061/items/2fe9333f045800d00b5c
.bachrcにいかのようなaliasをつけて
alias java8="export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home"
alias java7="export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home"
$java8 $java -version java version "1.8.0" Java(TM) SE Runtime Environment (build 1.8.0-b132) Java HotSpot(TM) 64-Bit Server VM (build 25.0-b70, mixed mode) $ java7 $ java -version java version "1.7.0_51" Java(TM) SE Runtime Environment (build 1.7.0_51-b13) Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)
[java]Java8のIDE(IDEA)
現状はIntelliJ IDEA Community Edition FREE http://www.jetbrains.com/idea/ をおとしてくるのが楽かな(すぐ使えるようになるので)。
File→New Project→Java でプロジェクト作成
プロジェクトフォルダを右クリック→Open Module Settings→Project→Project Language Level を6.0から8.0に変更。
これでJava8でコンパイルできるようになった。
[java]Java8のIDE(Eclipse)
https://wiki.eclipse.org/JDT/Eclipse_Java_8_Support_For_Kepler
pleiadesが対応しているかもと見に行ったがさすがに対応してなかった
http://mergedoc.sourceforge.jp/index.html#/pleiades.html
でもEclipse 4.3.2 Kepler SR2なのでJava8を充てることは可能。
Windows
Windows は Pleades の Java を入れる。
eclipse.iniから --launcher.XXMaxPermSize 512M を削除。Java8からXXMaxPermSizeがなくなったので。
あとWiki通りに http://download.eclipse.org/eclipse/updates/4.3-P-builds/ からJava8対応を入れる。
Java -> Compiler -> Compiler compliance level -> 1.8 もしくは
Java8でコードを書いてQuick Fix でWorkspace, Project ともに設定可能だった。
[java]Java8のTutorial
Java 8 Tutorial
http://winterbe.com/posts/2014/03/16/java-8-tutorial/
を写経した。
Date APIはいけてないのでJodaだろーってことでDate APIのところまで。
2時間30で終了(JavaとIDEのインストールとプロジェクトで設定は除く)。
[java]Java8とC#
C# だとこうなっているけどJavaだとどうなっているってのを意識しながらTutorialやったけど
C# のほうがわかりやすいと思うな。
すで対比をStreamだけだけどまとめている人がいた。
LINQ to Objects と Java8-Stream API の対応表
http://qiita.com/amay077/items/9d2941283c4a5f61f302
C#の拡張メソッドとvarがないのがやっぱり痛いなー。
拡張メソッドあれば自分でたりないところを足せるのに。。。
Collectorを自分で実装すればいいみたいだけど。
Java8
http://docs.oracle.com/javase/8/docs/api/java/util/function/package-summary.html
Dotnet
http://msdn.microsoft.com/en-US/library/bb549151(v=vs.110).aspx
Java8はすらすらかける自信がない。BiFunctionのbiってラテン語で「2」を意味するのか。
Dotnetのように引数16個まで対応なFunc, Actionのほうが楽だ(3つ以上を使うことは確かにあまりないとは思うが)。