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 版で。
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]。
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 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
は以下のような感じになる。
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 クラスを作って、
package foo;
public class Main {
public static void main(String... args) {
System.out.println("Hello World!!");
}
}
-
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
- [Transport] は
- [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 Replace が Enter , Replace All が Alt + 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
, else
:if
文の生成
-
boolean
に対して.if
でif
文を生成できる。 -
.else
だとboolean
を否定した形でif
文を生成できる。
null
, notnull
: null
比較の if
文生成
-
notnull
は、nn
でも可。
for
, fori
, forr
: for
文の生成
-
for
は拡張for
文。 -
fori
は、インデックスを伴った通常のループ。 -
forr
は、インデックスを伴った逆順ループ(r
はリバースのr
?)
while
:while
文を生成する
stream
: Stream API を使用したループの生成
- 配列を
Arrays.steram()
でStream
に変換した形式にする。
sout
:標準出力
format
:String.format()
へ変換する
opt
:Optional
へ変換する
var
:ローカル変数へ代入する
field
:インスタンスフィールドへ代入する
- インスタンスフィールドも自動生成される。
return
:return
を生成する
throw
: throw
を生成する
try
:try 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
の下に出力される。
参考
- Android Studio本格活用バイブル ~効率的にコーディングするための使い方 : 今井 勝信 : 本 : Amazon.co.jp
- Meet IntelliJ IDEA
- intellij idea - How to display hidden characters by default (ZERO WIDTH SPACE ie. ​) - Stack Overflow
- IntelliJ+Gradleのプロジェクト作成方法メモ - Qiita
- 忙しい人のためのIntelliJ IDEAショートカット集(´-`) - Qiita
- IntelliJ IDEA 13.1 RC Introduces Sublime Text Style Multiple Selections | IntelliJ IDEA Blog
- これだけは覚えておきたいIntelliJのショートカット - たけぞう瀕死ブログ
- GrailsをIntellijからリモートデバッグする - Yamkazu's Blog
- How to show all parents and subclasses of a class in IntelliJ IDEA? - Stack Overflow