1から始めるIntelliJ

#はじめに
そろそろJavaでサーバーサイドやらWindows ApplicationやらAndroidの開発やらをしてみたくなったので、統合開発環境を導入することにしました。
当初はEclipseを導入する予定でしたが
順調にJUnitの設定でつまづいてしまい、
色々思うところがありまして、IntelliJの導入に踏み切りました。
このIntelliJ、Eclipseに次いで[シェア2位](https://ja.wikipedia.org/wiki/IntelliJ_IDEA)を誇っているようで、何よりUIが今風なのが気に入りました。
どうもEclipseは日本語環境にした途端、実行速度がアレになっちゃうみたいですね。

余談ですが環境を構築し終えてNetbeansのことを知りました。

#やりたかったこと
+ IDEを触ってみたかった
+ Javaのユニットテストをしてみたかった
+ GitHubと連携して開発してみたかった

#環境
O S：Windows8.1 Pro(x64)
CPU：Core i5-4300M CPU 2.60GHz
RAM：4.00GB
JDK：8u121(Windows x64)
![172.png](https://qiita-image-store.s3.amazonaws.com/0/165355/f06ed975-37ce-5278-9892-1ff065297dde.png)




#手順
+ IntelliJダウンロード
+ IntelliJインストール
+ IntelliJ起動
+ JDKインストール
+ JDKへのパスを通す
+ テストクラスを作成
+ テストしてみる
+ GitHubとの連携
+ IntelliJエディタ設定

##IntelliJダウンロード
[こちら(https://www.jetbrains.com/idea/)](https://www.jetbrains.com/idea/)からIntelliJをダウンロードします。
IntelliJには有償版と無償版があるようですが、今回は無償版を選択しました。
詳しい違いについては[こちら](http://samuraism.com/products/jetbrains/intellij-idea/quickstart/basics-and-installation)から。
>1. Community(無償)とUltimate(有償)のどちらを選べば良いですか？
Java, Groovy, ScalaまたはAndroidのアプリケーションを開発するだけであればオープンソースで無償のIntelliJ IDEA Community Editionをご利用ください。
Webアプリケーション、エンタープライズアプリケーションを開発する場合は数々のツールが付属しており、フレームワークサポートの充実しているUltimate Editionをお勧めします。30日の無償試用もできます。

##IntelliJインストール
ダウンロードしたインストーラーを実行していきます。
基本的にはメッセージ通りに進めていけばインストール自体に戸惑う点はないはずです。
![ICOPY001.png](https://qiita-image-store.s3.amazonaws.com/0/165355/19594c52-7f0e-181f-fe02-25fa6d318313.png)



##IntelliJ起動
###インストール画面
![ICOPY002.JPG](https://qiita-image-store.s3.amazonaws.com/0/165355/34e9a49c-ea0f-e8e4-35e8-bf1556038826.jpeg)
特に設定のインポートなどしない場合は下を選択。

###環境のインポート
![ICOPY003.JPG](https://qiita-image-store.s3.amazonaws.com/0/165355/f41e000e-286f-4ba9-f89c-5d322c7b89e8.jpeg)
「Accept」を選択。

###チュートリアル起動
![ICOPY004.JPG](https://qiita-image-store.s3.amazonaws.com/0/165355/b919dff4-867b-8c42-c27b-903dde234c3c.jpeg)
チュートリアルが起動する。

###プロジェクト作成
![ICOPY005.JPG](https://qiita-image-store.s3.amazonaws.com/0/165355/56cfbfdd-ffac-4639-cb85-a4518063f0b4.jpeg)
「Create New Project」から新規プロジェクトを作成する。

![ICOPY006.JPG](https://qiita-image-store.s3.amazonaws.com/0/165355/29f4e601-6397-37c6-e716-391dd31ee4b8.jpeg)
ここで「Java」を選択してプロジェクトを作成していくが…JDKの環境が整っていないためここからJDK設定に移る。

##JDKインストール
<strong>J</strong>avaSE <strong>D</strong>evelopment <strong>K</strong>itをインストールしていく。

###JDKダウンロード
執筆時のバージョンは8u121となっていた。
[こちら](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)からJDKの最新版をダウンロード。
![171.JPG](https://qiita-image-store.s3.amazonaws.com/0/165355/42eedd62-520e-c21c-a412-a56383ed42aa.jpeg)
「Accept License Agreement」をクリックし、環境に合ったものをダウンロードする。

###JDKインストール
![ICOPY007.JPG](https://qiita-image-store.s3.amazonaws.com/0/165355/2c6b4879-b9fe-a6aa-77e8-93e4d9098d0e.jpeg)
インストールを進めていく。この辺りは割愛。
インストール先だけ、次のPathを通す作業で必要になるのでメモしておく。
参考：C:\Program Files\Java\jdk1.8.0_121\bin

##JDKへのパスを通す
JDKのインストールが終わったら、環境変数のPathを追加する。

###環境変数追加
![173.png](https://qiita-image-store.s3.amazonaws.com/0/165355/2cb7a235-1594-7200-dfc5-2daf9ffd0b6d.png)
「システム」画面を呼び出す。

![174.JPG](https://qiita-image-store.s3.amazonaws.com/0/165355/63254b67-a6ca-38f2-0e7e-83fe03854510.jpeg)
「システムの詳細設定」から「システムのプロパティ」画面を呼び出す。
「詳細設定」タブの画面下「環境変数」をクリックする。

![175.png](https://qiita-image-store.s3.amazonaws.com/0/165355/dd8cc849-4f99-343d-3e3b-5c41594f812c.png)
「環境変数」画面が開いたら画面下部「システム環境変数」内の「Path」を選択する。
選択後、「編集」をクリックする。

![176.JPG](https://qiita-image-store.s3.amazonaws.com/0/165355/6492c62b-2f69-d6ec-ff68-388bafc36693.jpeg)

「変数値」の最後に;を入力し、先程メモしておいたJDKへのパスをコピペする。
変数が複数ある場合、「;」で区切ることで複数の変数値をセットすることができる。
[この辺](http://next.matrix.jp/config-path-win7.html)を参考に。

###Pathの確認
![177.png](https://qiita-image-store.s3.amazonaws.com/0/165355/87d897a2-b90f-8b37-8d75-cb26a173d38c.png)
コマンドプロンプト上から

```sh
java -verison
```
と入力。バージョンが表示されていれば問題ナシ。
なんか通ってるけどエラー吐いてるような場合にはとりあえず再起動でなんとかなりました（体験談）。

##テストクラスを作成
再度IntelliJからプロジェクトを作成してみる。

###JDKの選択
![ICOPY008.JPG](https://qiita-image-store.s3.amazonaws.com/0/165355/498a21de-aff4-4bf3-f2ad-2e74feb7e23b.jpeg)
例のごとく「Create New Project」からプロジェクトを作成。
「Java」を選択し、「Project SDK」右側「New」から、「JDK」を選択する。

![ICOPY011.JPG](https://qiita-image-store.s3.amazonaws.com/0/165355/43c8bce8-5684-6251-5e17-91ef5c7303f7.jpeg)
先程インストールしたローカル側のJDKパスを選択し、「OK」をクリックする。

![ICOPY012.JPG](https://qiita-image-store.s3.amazonaws.com/0/165355/ea74df11-5a13-5dec-3cce-ee870d12a6da.jpeg)
元の画面に戻るので、リストボックスから先程設定した方のJDKを選択する。
選択後、「Next」ボタンをクリック。

###プロジェクトの作成
![ICOPY013.JPG](https://qiita-image-store.s3.amazonaws.com/0/165355/f0744861-fb3e-684f-ff95-3290be0b7116.jpeg)
特に弄らず、「Next」をクリック。

![ICOPY014.png](https://qiita-image-store.s3.amazonaws.com/0/165355/d41759fd-2e4c-8c62-ff8b-12fdfb32e306.png)
プロジェクト名を入力し、「Next」をクリック。

###テストクラスの作成
![ICOPY015.JPG](https://qiita-image-store.s3.amazonaws.com/0/165355/207e5631-d0df-f580-fed5-c4a83f2215ea.jpeg)
プロジェクト内「src」を右クリックし、「New」→「Java Class」を選択。

![ICOPY030.JPG](https://qiita-image-store.s3.amazonaws.com/0/165355/abdb7d22-a999-035d-740f-f729c64a4ad7.jpeg)
適当にクラス（calc）を記述する。

```java
public class calc {
    public int sum(int x, int y)
    {
        return x + y;
    }
}
```
###テストディレクトリの作成
![ICOPY016.png](https://qiita-image-store.s3.amazonaws.com/0/165355/32610362-d65a-8e95-a707-fe11d00e50b9.png)
プロジェクトを右クリック→「New」→「Directory」を選択。

![ICOPY017.JPG](https://qiita-image-store.s3.amazonaws.com/0/165355/4cef5f97-3ad4-14e1-18f1-37f360236755.jpeg)
ディレクトリ名を入力。

![ICOPY018.png](https://qiita-image-store.s3.amazonaws.com/0/165355/d1b5fd8f-70ef-18f0-33cf-cd6d06aaaf59.png)
「Files」→「Project Structure」を選択。

![ICOPY019.JPG](https://qiita-image-store.s3.amazonaws.com/0/165355/fafdc848-3861-df02-83d9-17df03b7d0ef.jpeg)
左側メニュー「Modules」を選択し、先ほど作成したTestsの上で右クリック後「Tests」を選択する。

##テストクラスの作成
###テストクラスを生成する
![ICOPY020.png](https://qiita-image-store.s3.amazonaws.com/0/165355/54fbeaf8-e8b5-177f-ffee-ccdd61bfae86.png)
作成したClass「calc」のソースコード上で右クリック。
「Go To」→「Test」の順で選択。

![ICOPY021.png](https://qiita-image-store.s3.amazonaws.com/0/165355/198abdf2-0659-5562-4731-3c932c5832ba.png)
「Create New Test...」を選択。

###JUnit4の選択
![ICOPY022.JPG](https://qiita-image-store.s3.amazonaws.com/0/165355/a51bcfe3-3fef-d603-742f-19c439766999.jpeg)
「Testing library」からJUnit4を選択。
「startUp/@Before」「tearDown/After」にチェックを入れる。
Member内の関数にもチェック。
「JUnit4 library not found in the module」横の「Fix」ボタンをクリックする。

![ICOPY023.JPG](https://qiita-image-store.s3.amazonaws.com/0/165355/c0234cfb-05db-28ee-8821-fe5a098c7ff2.jpeg)
ウィンドウが表示されるので、「Use 'JUnit4'...」にチェックを入れ「OK」。

##テストしてみる
###レッドテストを記述
![ICOPY024.JPG](https://qiita-image-store.s3.amazonaws.com/0/165355/21c735e7-2afa-d3fc-c4e8-8a573ea7315c.jpeg)
新しく生成されたモジュール上にテストを記述。

```java
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class calcTest{
    @Test
    public void sum() throws Exeption {
        calc obj = new calc();
        assertEquals(1, 1 + 1);
    }
}
```
###テストをレッドで通す
![ICOPY025.JPG](https://qiita-image-store.s3.amazonaws.com/0/165355/5dcb10b2-ddf7-795d-4b3b-494ccf59bba7.jpeg)
上タブ「Run」→「Run」→「calcTest」の順に選択して実行する。
あるいはショートカットキー「Alt+Shift+F10」で実行する。

![ICOPY026.JPG](https://qiita-image-store.s3.amazonaws.com/0/165355/e6a517c7-0cb0-be97-4edc-316cae4e58c7.jpeg)

###テストをグリーンで通す
![ICOPY027.JPG](https://qiita-image-store.s3.amazonaws.com/0/165355/f0962c7b-7b0a-1c8b-2df4-031a3655ea5b.jpeg)
グリーンで通るようにコードを書き直して実行。

##GitHubとの連携
この辺で筆者は力尽きました。
おとなしく先達の知恵をお借りすることといたします。
実際のところまだGitの感覚が体感的に理解できてないので、その辺りは今後の課題です。

+ [IntelliJ IDEAとGitHubを連携するときの設定メモ
](http://qiita.com/rubytomato@github/items/b2ca27712146ed6f1426)
+ [IntelliJ IDEAでGitとGitHubを使用する方法](http://www.task-notes.com/entry/20160511/1462935600)
+ [GitHubをIntelliJ ideaから使う](http://kuronosuke1.blogspot.jp/2014/04/githubintellij-idea.html)
+ [JUnitよちよち歩き on IntelliJ Idea](http://dr-kayai.hatenablog.com/entry/2016/04/16/071944)

##IntelliJエディタ設定
+ [IntelliJ IDEA初期設定（主にエディタ）](http://qiita.com/keita-nishimoto/items/5968b9eee4177c302481)

#所感
アイエエ！統合開発環境ヤッター！
…ですが、正直なところ、まだまだ機能に使われている感じが否めません。
多機能である分、慣れるまでにかなり時間がかかりそうです。
そもそもJavaのコーディング自体に慣れることも課題の一つですが…。
慣熟も兼ねて、Javaで何か面白いモノが作れたらいいなぁ、と。