Edited at

IntelliJ IDEA 入門

More than 1 year has passed since last update.

Eclipse に体が馴染んでしまった人が、頑張って IntelliJ IDEA の使い方を勉強したときのメモ。


IntelliJ IDEA とは

JetBrains という会社が開発している IDE。

Eclipse, NetBeans の競合。


環境


OS

Windows 7


IntelliJ IDEA

IntelliJ IDEA Community Edition 2016.1.1


JDK

8


インストール

フリーで OSS な Community 版と、有償の Ultimate 版がある。

今回は Community 版で。

https://www.jetbrains.com/idea/#chooseYourEdition


Hello World


プロジェクトを作る


  • 起動したら [Welcome to IntelliJ IDEA] というウィンドウが表示される。

  • とりあえず [Create New Project] を選択する。

  • [New Project] というウィンドウが表示される。

  • デフォルトでは [Project SDK] に何も登録されていないようなので、 [New] をクリックして [JDK] を選択する。

  • ローカルにインストールしている JDK のホームを登録する。

  • 左の一覧から [Java] を選択して [Next] をクリック。


  • [Create project from template] はそのまま [Next]。

  • 最後にプロジェクト名と、作成先のフォルダを入力して [Finish]。


ソースを作成する


  • [src] を右クリックして [New] -> [Java Class]。

  • クラス名を入力して [OK]。


Main.java

package sample.intellij;

public class Main {
public static void main(String... args) {
System.out.println("Hello IntelliJ!!");
}
}



  • 適当にソースを記述したら、メニューバーの [Run] -> [Run] と選択して 起動する Main クラスを選択する。


  • コンソールに結果が出力される。


環境設定


テーマ


  • [File] -> [Settings]

  • [Appearance & Behavior] -> [Appearance]

  • [UI Options] の [Theme] を選択。

  • 目に優しい暗色系がいいので、 Darcula を選択。


フォント


  • [File] -> [Settings]

  • [Editor] -> [Colors & Fonts] -> [Font]

  • [Scheme] で Darcula を選択して [Save As] をクリック。

  • [Name] に任意の名前を入力して、 [OK] を選択。

  • [Primary Font] でフォントを選択して [OK]。


空白スペースを表示させる


  • [File] -> [Settings]

  • [Editor] -> [General] -> [Appearance]

  • [Show whitespace] のチェックをオンにする。


行番号を表示させる


  • [File] -> [Settings]

  • [Editor] -> [General] -> [Appearance]

  • [Show line numbers] のチェックをオンにする。


クラスの import でワイルドカードを使用させない


  • [File] -> [Settings]

  • [Editor] -> [Code Style] -> [Java]

  • [Import] タブの [General] -> [Class count to use import with '*'] の値を 99999 とかにする。

自分は、クラスの import は * を使いたくない派。


  • コード中で使っているクラスが、具体的にどのパッケージのものなのかひと目で分かりづらくなる。

  • import 文だけでは、そのクラスが使用している具体的なクラスが判断できなくなる。

  • import しているクラスの実際の数が分かりづらくなる(import するクラスが多い場合は、そのクラスの役割が大きくなっているという合図になる)。


クラスを作成した時に Javadoc を自動生成させない

デフォルトだと、 OS のユーザー名を @author にした Javadoc が生成される。


  • [File] -> [Settings]

  • [Editor] -> [File and Code Templates]

  • [Files] -> [Class]


  • #parse("File Header.java") となっているところを削除。

  • 他にも [Interface], [Enum], [AnnotationType], [package-info.java] とかにもある。


現在開いているソースを、プロジェクトツールウィンドウ上で選択する


  • プロジェクトツールウィンドウにある歯車のアイコンをクリック。

  • [Autoscroll from Source] にチェックを入れる。


マウスホバーで Javadoc や変数の情報などを表示させる


  • [File] -> [Settings]

  • [Editor] -> [General]

  • [Show quick documentation on mouse move] のチェックをオンにする。

参考

How to make Intellij show Eclipse like API documentation on mouse hover - Stack Overflow


保存したときにスペースだけの行が削除されないようにする


  • [File] -> [Settings]

  • [Editor] -> [General]

  • [Other] の [Strip trailing spaces on Save:] を None にする


プロジェクト・モジュールの操作


プロジェクトとは

IntelliJ IDEA のプロジェクトは、 Eclipse ではワークスペースに該当する。

Eclipse のプロジェクトは、 IntelliJ IDEA ではモジュールに該当する。

IntelliJ IDEA
Eclipse

プロジェクト
ワークスペース

モジュール
プロジェクト


プロジェクトを作成する


  • [File] -> [New] -> [Project]

あとは、 最初 と同じ手順で作成する。


モジュールを作成する


  • プロジェクトを右クリックして [New] -> [Module]

  • [Module SDK] を選択して [Next]


    • プロジェクトで指定している [Module SDK] をそのまま使うなら、 Project SDK を選択。



  • [Module name] を入力して [Finish] をクリック。


モジュールを削除する


  • 削除するモジュールを右クリックして [Remove Module] を選択。

  • これだけだと、モジュールとしての認識が解除されるだけで、フォルダやファイル自体は残る。

  • フォルダも完全に削除したい場合は、再び元モジュールのフォルダを右クリックして [Delete] を選択する。


ソースフォルダを追加する


  • ソースフォルダとしたいフォルダを作成し、右クリック -> [Mark Directory As] -> [Sources Root] を選択。


リソースフォルダなどの追加

[Mark Directory As] を見るとわかるが、リソースフォルダなどもここで指定できる模様。


ソースフォルダを解除する


  • ソールフォルダを右クリックして、 [Mark Directory As] -> [Unmark as Sources Root] を選択。


プロジェクト(モジュール)の設定を開く


  • プロジェクトを右クリックして [Open Module Settings] を選択する。


依存する jar ファイル(ローカル)を追加する


  • プロジェクト内に対象の jar ファイルを配置する。

  • jar ファイルを右クリックして [Add as Library] を選択する。

  • [Create Library] というダイアログが開くので、必要に応じて設定を変更して [OK] をクリックする。


もうちょっと細かく設定する



  • プロジェクトの設定を開いて、 [Modules] の [Dependencies] タブか、 [Libraries] で設定する。

  • [Libraries] は jar 自体の追加・削除を設定する。

  • [Modules] の [Dependencies] は、モジュールごとに依存する jar の参照を設定する。


エクスプローラで開く


  • 開きたいファイル・フォルダを右クリックして [Show in Explorer] をクリック。


プロジェクトに対する勘違い


  • これを見たとき、 hello-intellijプロジェクト だと思っていた。

  • そのため、「IntelliJ は、プロジェクトも src フォルダを持つことができる」と勘違いしていた。

  • しかし、よく見てみると、 hello-intellij のフォルダアイコンは、右下に水色の四角が付いている。

  • これは、そのフォルダが モジュール として認識されていることを表している。

  • つまり、 hello-intellij というプロジェクトに hello-intellij というモジュールがある、という状態になっている。


現在開いているファイルの場所をプロジェクトツールウィンドウ上で開く

プロジェクトツールウィンドウの右上にあるアイコンのうち、一番左にある丸いアイコン(Scroll from Source)をクリックする。

すると、プロジェクトツールウィンドウが現在開いているファイルの場所まで一気に展開される。


空のパッケージも階層で表示させる

あるパッケージの以下にパッケージが1つしかないと、上のように foo.bar と表示される。

この状態で foo パッケージ直下にクラスを追加したくて foo.bar を右クリック→クラスを追加とすると、 foo.bar の下にクラスが追加されてしまう。

foo の直下にクラスを追加しやすくしたい場合は、パッケージの表示を切り替える。

プロジェクトツールウィンドウの右上にある歯車のアイコンをクリックして、 Compact Empty Middle Packages のチェックを外す。

これで foo パッケージが単独で表示されるようになるので、 foo パッケージ以下にクラスを追加しやすくなる。


Gradle で開発する


IntelliJ IDEA で Gradle プロジェクトを作る



  • プロジェクトを作る ときに、 [Gradle] を選択すれば作れる。

  • [GroupId] と [ArtifactId] は、まぁ適当に入力する。


  • Create directories for empty content roots automatically にチェックを入れておくと、 src/main/java などのフォルダが自動生成される。

  • 使用する Gradle については、必要に応じて切り替えればいいと思う。

生成された build.gradle は以下のような感じになる。


build.gradle

group 'gl8080'

version '1.0-SNAPSHOT'

apply plugin: 'java'

sourceCompatibility = 1.5

repositories {
mavenCentral()
}

dependencies {
testCompile group: 'junit', name: 'junit', version: '4.11'
}



実行する


  • 簡単な Hello World クラスを作って、


Main.java

package foo;

public class Main {
public static void main(String... args) {
System.out.println("Hello World!!");
}
}




  • build.gradle を修正して、


build.gradle

group 'gl8080'

version '1.0-SNAPSHOT'

- apply plugin: 'java'
+ apply plugin: 'application'

+ mainClassName = 'foo.Main'

sourceCompatibility = 1.8

repositories {
mavenCentral()
}

dependencies {
testCompile group: 'junit', name: 'junit', version: '4.11'
}



  • [Run] -> [Edit Configurations...] を選択。

  • 左上の + をクリックして、 [Gradle] を選択する。


  • Unnamed という名前で実行するタスクの定義が追加されるので、適当に名前を変更する(とりあえず run にしとく)。

  • [Gradle project] で対象のプロジェクトを選択する。

  • [Tasks] に、実行するタスクを記述する(今回は run タスクを実行したいので、 run だけ)。

  • [OK] で閉じる。


  • 画面右上のタスクを選択するプルダウンで、今追加した run が選択できるようになっているので、 run を選択して緑色三角ボタンをクリックする。


  • 図のように表示されて標準出力が見えない場合は、マウスカーソルが当たっているところをクリックすれば表示が切り替わる。


build.gradle の修正を反映させる


  • 画面の右側に [Gradle] と書かれたところがあるので、それをクリックする。


  • [Gradle Tool Window] が表示されるので、上の画像でマウスカーソルが当たっている更新ボタンをクリックする。


  • build.gradle の内容に合わせてプロジェクトの設定が更新される。


  • dependencies などを変更したときは、これをクリックすることでクラスパスの変更を反映させられる。


既存の Gradle プロジェクトを取り込む


  • 適当に Gradle のプロジェクトを作る。

  • [File] -> [Open] を選択。

  • パスを入力するところに、あらかじめ作成しておいた Gradle プロジェクトのパスを入力する。

  • IDE から Gradle プロジェクトを作ったときと同じような感じのダイアログが開くので、良しなに設定して [OK] をクリック。


  • .idea フォルダが作成されて、 IntelliJ に取り込まれる。


デバッグ


ブレークポイントを設定する


  • エディターの左端をクリックすれば、その行にブレークポイントを設定できる。


デバッグで実行する


  • 右上の虫アイコンでプログラムを起動すると、デバッグ起動できる。

  • Gradle プロジェクトの場合も、 run タスクを虫アイコンのボタンで起動するとデバッグできる。


デバッグ中の操作

操作
ショートカットキー

ステップオーバー
F8

ステップイン
F7

ステップアウト
Shift + F8

カーソル行まで実行
Alt + F9

続行
F9


デバッグ中に任意の例外をスローさせる

eclipse だとデバッグ中に「表示」ウィンドウで例外をスローさせることができるが、 IntelliJ ではできないっぽい。

java - In Intellij, how can I throw an exception at a break point? - Stack Overflow

なんか、色々工夫しているっぽい。


例外がスローされたらブレークさせる


  • [View Breakpoints] をクリック。


  • + をクリックして、 [Java Exception Breakpoints] を選択。

  • 停止させたい例外を選択して、 [OK] をクリック。


デバッグ中に任意のコードを実行する


  • [Evaluate Expression] をクリックすると、ダイアログが開くので、任意のコードを入力して [Evaluate] をクリックすると、結果が [Result] に表示される。


リモートデバッグ


  • [Run] -> [Edit Configurations...]

  • 左上の + をクリック -> [Remote] を選択。

  • 適当に名前を付ける。

  • [Settings] の [Host] と [Port] に適切な値を設定。


    • [Transport] は Socket

    • [Debugger mode] は Attach



  • [Search sources using modules classpath] で、ソースコードがあるモジュールを選択。

  • [OK] をクリックして編集を完了させる。

  • [Run] -> [Run...] を選択。先ほど登録した設定を実行する。


ショートカットとか、その他色々


検索・選択

操作
キー

ファイル検索

Ctrl + Shift + n

型検索

Ctrl + n

ファイル内検索

Ctrl + f

Grep

Ctrl + Shift + f

インクリメンタルサーチ
普通の検索がインクリメンタルサーチ

行番号を指定して移動

Ctrl + g

クイックアウトライン

Ctrl + F12

クラスやメソッドを使用している箇所を検索する

Alt + F7

宣言箇所へ移動

Ctrl + マウスクリック
or Ctrl + b

マウスを使った矩形選択

Alt + ドラッグ

同じ文字列を順次選択

Alt + j (Alt + Shift + j で、選択を戻す)

同じ文字列を一括で選択

Ctrl + Shift + Alt + j

マウスを使って複数の位置を選択

Alt + Shift + マウス選択

型階層を開く

Ctrl + h

選択範囲を広げる

Ctrl + w


編集

操作
キー

アンドゥ

Ctrl + z

リドゥ

Ctrl + Shift + z

行削除

Ctrl + y

選択行を上下に移動

Alt + Shift + ↑ or ↓

行コピー

Ctrl + d

Grep 置換

Ctrl + Shift + r

ファイル内置換

Ctrl + r
ReplaceEnter, Replace AllAlt + a

リファクタリング

Shift + F6

クイックフィックス

Alt + Enter

コード補完

Ctrl + Space

インポートの編成(必要なインポートの追加)

Alt + Enter

インポートの編成(不要なインポートの除去)

Ctrl + Alt + o

コード生成
(Getter, Setter, toString,
コンストラクタ, equals, hashCode)

Alt + Insert で出てきたパネル上で選択

コメント切り替え(行)

Ctrl + /

コメント切り替え(ブロック)

Ctrl + Shift + /

単体テストクラスへ移動する(なければ生成)

Ctrl + Shift + t

テストメソッドを追加

Alt + Insert で出てきたパネル上で選択

大文字・小文字の切り替え

Ctrl + Shift + 'u'

メソッドの抽出

Ctrl + Alt + m


その他

操作
キー

実行

Shift + F10

デバッグ実行

Shift + F9

現在開いているファイルを閉じる

Ctrl + F4

プロジェクトをビルドする

Ctrl + F9


クラスメソッドの static インポート

JUnit で assertThat などを static インポートする方法。



  • asserth のように途中まで入力。


  • Ctrl + Space を2回入力。

  • すると候補が表示されるので、インポートしたいクラスのメソッドにカーソルをあわせる。


  • Alt + Enter を入力すると、 static インポートするかの選択肢が現れるので、それを選択。


テンプレート(スニペット)

テンプレート
展開結果

psvm

main() 関数

sout
System.out.println()


  • 個人的によく使うのはこの2つだけ。

  • 他にもいっぱいあるけど、覚えられる気がしない。。。

  • 他のテンプレートは、 [Settings] の [Editor] -> [Live Templates]。


Postfix

IntelliJ IDEA 最強の機能(と勝手に思ってる)。

Kotlin 勉強会 で Postfix のライブコーディングを見て驚愕して、俄然 IntelliJ に興味を持った。


!:否定



  • boolean を否定できる。

  • プリミティブの boolean の場合は、 true, false 自体が入れ替わる。


  • .not でも可能。


cast:キャスト


if, elseif 文の生成



  • boolean に対して .ifif 文を生成できる。


  • .else だと boolean を否定した形で if 文を生成できる。


null, notnullnull 比較の if 文生成



  • notnull は、 nn でも可。


for, fori, forrfor 文の生成



  • for は拡張 for 文。


  • fori は、インデックスを伴った通常のループ。


  • forr は、インデックスを伴った逆順ループ(r はリバースの r?)


whilewhile 文を生成する


stream: Stream API を使用したループの生成


  • 配列を Arrays.steram()Stream に変換した形式にする。


sout:標準出力


formatString.format() へ変換する


optOptional へ変換する


var:ローカル変数へ代入する


field:インスタンスフィールドへ代入する


  • インスタンスフィールドも自動生成される。


returnreturn を生成する


throwthrow を生成する


trytry catch を生成する


  • 任意の式の後ろに .try と続ける。


twr:try with resource を生成する



  • AutoCloseable の後ろに twr と続ける。


その他


jar ファイルを出力する



  • プロジェクトの設定を開いて、 [Project Settings] -> [Artifacts] を選択。

  • [Nothing to show] の上にある + をクリックする。

  • [JAR] -> [From modules with dependencies] を選択。

  • [Main Class] を選択して [OK] をクリック。


  • プロジェクト名.jar という名前で jar の出力設定が追加される。

  • メニューバーから [Build] -> [Build Artifacts] を選択する。

  • [Build] を実行すると、デフォルトだと out/artifacts の下に出力される。


参考