IntelliJ IDEA 使用メモ¶
起動¶
起動時の画面(プロジェクト未選択)¶
プロジェクトが未選択のとき、次の画面が開きます。
右下の [Configure]をクリックすると次のメニューが開きます。
起動時の画面(プロジェクト選択時)¶
前回プロジェクトを開いて終了した場合、次に起動したときはそのプロジェクトが開いた状態で立ち上がります。
機能メモ¶
バージョン管理連携¶
git¶
- git.exeがPATH上にないとエラー
プロジェクト管理ファイルについて¶
.ideaディレクトリはIDEAのプロジェクト設定が格納される場所です。
.idea/workspace.xml¶
プロジェクトを開いている状況(ファイルの一覧、タブの並び、ツールウィンドウのオプションや情報、他)。個人毎に異なる。
バージョン管理対象ファイル¶
.ideaディレクトリ下で、次のファイルを除く。
- workspace.xml
- usage.statistics.xml
- tasks.xml
次のファイル
- モジュールディレクトリにある.imlファイル
但し、mavenまたはgradleプロジェクトでは、.imlファイルと、.idea/modules.xmlファイルはバージョン管理対象外とする
プロジェクトの定義¶
IntelliJ IDEAのプロジェクトは、モジュールを束ねる単位で、モジュールがそれぞれビルドし成果物(JARファイル等)を生成する単位となります。他のIDE(EclipseやNetBeans IDE)のプロジェクトとは概念が異なります。
Java Platform Module System (JPMS)¶
IntelliJ IDEAでは、プロジェクトの下にモジュールを定義する構造となります。このモジュールはそれぞれ1つのJARファイルを生成します。このモジュールに、module-info.javaを定義すると、IntelliJ IDEAのビルド・実行時にJPMSとして扱われます。
サードパーティーライブラリ¶
JDK(Java SE)のAPI以外のサードパーティーライブラリを利用するときは、Dependenciesにライブラリを定義します。
定義は、利用範囲に応じて3段階あります。
- グローバル
- プロジェクト
- モジュール
ライブラリの定義時に、mavenリポジトリから指定のフォルダへダウンロードする機能があります。
JARファイルの生成¶
デフォルトでは、クラスファイルを出力ディレクトリ(通常 out\production)下に生成し、実行します。
JARファイルを生成させたい場合は、プロジェクトの定義で明示的にJARファイルを生成するよう設定します。
- [File]メニュー > [Project Structure]で「Project Structure」画面を開く
- 左側ペインで[Project Settings] > [Artifacts]を選択
- 中ペインで[+]をクリックし、[JAR] > [From modules with dependencies] をクリック
- JARファイルを生成するモジュールを選択、実行可能JARとする場合は、[Main Class]欄でmainメソッドを持つクラスを選択
- 依存するライブラリの利用方法を次から選択
- 依存するライブラリを含めて単一のJARを生成する場合、[extract to the target JAR]
- 依存するライブラリをビルド結果出力ディレクトリへコピーし、JARのマニフェストにリンク情報を定義する場合、[copy to the output directory and link via manifest]
プロジェクトの種類¶
[2023]
新規プロジェクトを作成する際、[File]メニュー > [New] > [Project]から「New Project」画面を表示し、開発言語にJavaを選択すると、次の3つのビルドシステムから選択したビルドシステムを使用するプロジェクトが生成できます。
- IntelliJ
- Maven
- Gradle
プロジェクトフォルダは、Location欄に指定したフォルダの下に、Name欄で指定した名前で生成します。
IntelliJビルド¶
Mavenビルド¶
Gradleビルド¶
Gradleビルド¶
ビルドシステムにGradleを選択してプロジェクトを生成します。
Gradleのデフォルト設定は、ライブラリのビルドとなっています。
実行可能なアプリケーションのビルドをする場合、build.gradleファイルの設定を変更する必要があります。
次のWikiページを参照 Gradleの使い方
JDKのバージョン¶
IntelliJで開発するJDKのバージョンには制約があります。
Supported Java versions and features
例えば、IntelliJ IDEA 2023.2 は、Java 20に対応しています。IntelliJ IDEA 2022.3は、Java 19に対応しています。
2023年9月にリリース予定のJava 21で導入された文法はIDEA 2023.2のエディターでは正しく扱われません。Java 21を扱うには、IntelliJ IDEAの次のバージョンがリリースされるのを待つことになります。
つぎに、プロジェクトでMavenやGradleをビルドツールに使う場合、今度はMavenのバージョン、GradleのバージョンによってJDKのバージョンに制約があります。
Java編集¶
メソッドのJavadoc表示¶
マウスをメソッド名の上に載せたときにそのメソッドのJavadocを表示する機能がありますが、デフォルトでは無効となっています。
[File]メニュー > [Settings] で「Settings]画面を表示し、左側ペインで[Editor] > [General]を選択、右側ペインで Otherカテゴリの[Show quick documentation on mouse move]にチェックを付けます。
サードパーティーライブラリのJavadocを表示するときは、ライブラリの定義にJavadocの設定(URL指定あるいはJavadocのファイル)も追加しておきます。
略語展開によるコード記述¶
Live Template機能により、略語(例えば、psf)を入力後、展開操作(例えば、TABキー)をすると、コードに展開されます(例えば、public static final)。
自由に追加することができます。
java.util.logging.Loggerのクラス変数記述を登録する¶
Live Templatesはいくつかグループ分けされています。Java関係は、デフォルトではiterations、other、output、plain、surroundのグループがあります。loggingは機能的にはoutputグループが近いですが、あとでロギング関係のテンプレートを複数登録すると思われるので、新たにloggingグループを作ってその中にテンプレート定義を入れていきます。
- [File]メニュー > [Settings] で「Settings」画面を開き、左側ペインで[Editor] > [Live Templates]を選択、右側ペインで[+]を押し、ポップアップメニューの[2.Template Group]を選択する。
- 「Create New Group」ダイアログが開くので、logging と入力し[OK]ボタンを押す。
- [logging]が一覧に追加されるので、これを選択状態にして右側ペインの[+]を押し、ポップアップメニューの[1.Live Template]を選択する。
- [Abbreviation]欄に、logr を、[Description]欄に、Insert a static field of java.util.logging.Logger in this class. と入力し、[Template text]欄に以下のコード断片を記述する。
private static final java.util.logging.Logger logger = Logger.getLogger($CLASS_NAME$.class.getName());
- FQCNで記述すると、その型のimport文が生成される
- クラス変数を定義するクラスのクラス名を自動で挿入するため、クラス名部分を変数で記述(ここでは$CLASS_NAME$としているが任意の変数名でよい)
- 右辺のLoggerは、既に左辺でFQCN指定しているのでここではFQCNでなくてよい
- [Edit variables]ボタンを押し、「Edit Template Variables」ダイアログが開くので、空欄となっているExpressionセルをクリック、ドロップダウンリストからclassName()を選択する。
import文をワイルドカードにしない¶
デフォルトでは、同じパッケージからクラスを3つ以上インポートすると、import文がワイルドカードとなってしまいます。
この設定は、[File]メニュー > [Settings]で「Settings」画面を開き、左側ペインで[Editor] > [Cody Style] > [Java]を選択、右側ペインで[Imports]タブを選択、[Use single class import]にチェックが付いていること、[Class count to use import with '*']欄の数字をデフォルトの3から大きな数(例:99)に変更します。
ビルド¶
Antビルド¶
プロジェクトを作成後、[Build]メニュー > [Generate Ant Build]をクリックし、「Generate Ant Build」画面を開きます。
単一ファイルのAntビルドと、モジュール毎およびメインとの複数ファイルのAntビルドが生成可能です。
生成後、IntelliJ IDEA画面右端の[Ant]をクリックしてAnt設定領域を右側に表示、[+]をクリックして生成したAntビルドファイルを選択します。
デフォルトで生成されるAntターゲットは、コンパイルまででJARファイルの生成や実行に関するターゲットはありません。
JARファイルをAntビルドで生成するには、[Generate Ant Build]を実行する前に、先にプロジェクトで成果物JARファイルを生成する設定をします。
- [File]メニュー > [Project Structure]で、「Project Structure」画面を開き、左側ペインで[Project Settings] > [Artifacts]を選択
- 中ペインで[+]をクリックし、[JAR] > [From modules with dependencies]をクリック
- [Main Class]欄に、mainメソッドを持つクラスを設定
- [JAR files from libraries]項は、[copy to the output directory and link via manifest]をチェック
成果物(Artifact)が定義された後に、[Generate Ant Build]を実行すると、JARファイルを生成するAntターゲットが追加されています。
<target name="artifact.spectrumfileviewer:jar" depends="init.artifacts, compile.module.spectrumfileviewer" description="Build 'SpectrumFileViewer:jar' artifact">
<mkdir dir="${artifact.output.spectrumfileviewer:jar}"/>
<jar destfile="${temp.jar.path.SpectrumFileViewer.jar}" duplicate="preserve" filesetmanifest="mergewithoutmain">
<zipfileset dir="${spectrumfileviewer.output.dir}"/>
</jar>
<copy file="${temp.jar.path.SpectrumFileViewer.jar}" tofile="${artifact.output.spectrumfileviewer:jar}/SpectrumFileViewer.jar"/>
</target>
Javadocの生成¶
[Tools]メニュー > [Generate JavaDoc]を実行すると、「Generate JavaDoc」画面が開き、生成対象、出力ディレクトリ、生成対象、ロケール、Javadocコマンドラインオプションなどを設定することができます。ここで設定した内容は、.idea\misc.xmlファイルに保存されます。このmisc.xmlに記載されるパスは、ホームディレクトリからのパスとなっていました。
<component name="JavadocGenerationManager">
<option name="OUTPUT_DIRECTORY" value="$USER_HOME$/mywork/satcom/dev/spectrumviewer/SpectrumFileViewer2/out/docs" />
</component>
.idea\misc.xmlファイルをリポジトリへ登録する際、上述のパスは無効となるため、直接ファイルを編集して共有可能なパスに修正します。
- <option name="OUTPUT_DIRECTORY" value="$USER_HOME$/mywork/satcom/dev/spectrumviewer/SpectrumFileViewer2/out/docs" />
+ <option name="OUTPUT_DIRECTORY" value="$PROJECT_DIR$/out/docs" />
文字コード¶
ソースファイルがプラットフォームのデフォルトエンコーディングではない場合、例えば日本語版Windows上でソースファイルの文字コードをUTF-8としていたときは、明示的に文字コードを指定しないとjavadocツールが文字の解釈が出来ないとエラーになります。
「Generate JavaDoc」画面でOther command line arguments欄に次の指定をします。-encoding UTF-8 -docencoding UTF-8 -charset UTF-8
-encoding
はソースファイルの文字コードを指定-docencoding
はjavadocツールが生成するHTMLファイルの文字コードを指定-charset
はjavadocツールが生成するHTMLの先頭(head部)に記述するcharsetの文字コード指定
Gradle¶
Gradleプロジェクトを作成すると、Gradleのタスクが生成されます。
Gradleのタスクツリー表示から、build関係のタスク(assemble, build, jar, cleanなど)、documentation関係タスク(javadoc)、verification関係タスク(check, test)などが閲覧・実行できます。
アプリケーションの実行¶
IntelliJ IDEAのGradleタスクツリーにはビルド、ドキュメント、検証関係のタスクが表示されます。
実行に関するタスク(run)が見当たりません。アプリケーションの実行(デバッグ実行)は、Javaソース編集画面のmainメソッドの行にある緑色の▷ボタンをクリックして実行します。
実行可能JARファイルを作成¶
IntelliJ IDEAのデフォルト機能で生成したGradleプロジェクトでは、jarファイルに実行可能な情報が記述されません。
build.gradleを編集して情報を追記します。
plugins {
- id 'java'
+ id 'application'
}
+application {
+ mainModule = 'com.torutk.weather'
+ mainClass = 'com.torutk.weather.WeatherApplication'
+}
- Gradleのプラグインは、実行可能JARファイルを生成するためjavaからapplicationに変更
- applicationの情報として、実行するモジュール名とそのモジュール内のmainメソッドを持つクラス名を指定
GUI Designer(Swing)¶
IntelliJ IDEAには、GUIライブラリSwingを使う際に画面配置をビジュアル的にデザインするGUI Designerが搭載されています。
GUI Designerについて¶
GUI Designerは、JPanelの画面配置をビジュアルに定義し、定義をXMLファイルに生成します。また、定義ファイルと対になるJavaクラスのソースコードを生成し、画面に配置したSwingコンポーネントとJavaクラスのフィールド・メソッドとの対応付け(バインディング)を行うコードを生成します。
使い方¶
- プロジェクトビューから生成したいパッケージを右クリックし、[New] > [Swing UI Designer] > [GUI Form]を選択
- [Form name]に生成したい画面名を入力、[Base layout manager]に画面配置のレイアウトマネージャを選択(デフォルトではGridLayoutManager)、[Create bound class]にチェックを付けて(デフォルト)、[Class name]には Form nameと同じ名前を指定します(Create bound classにチェックを付けていれば自動で同じ名前が入ります)
配置した画面はプレビューできます。配置画面上で右クリックし[Preview]で表示されます。
利用ケース¶
新規プロジェクトの作成¶
JavaFXアプリケーションの新規プロジェクトを作成¶
IDE | IntelliJ IDEA 2022.2 |
---|
IntelliJ IDEAは、デフォルトでJavaFXプロジェクト生成を有しています。
[File]メニュー > [New] > [Project]で「New Project」画面を開き、左側ペインで[Java FX]を選択、右側ペインでプロジェクトの設定を指定します。
プロジェクト名、プロジェクト作成ディレクトリ、プログラミング言語、ビルドツール(MavenかGradle)を指定します。
生成されるファイルは次の通りです(Gradleの場合の例)。
+- .gitignore +- .gradle +- .idea +- build.gradle +- gradle +- gradlew +- gradlew.bat +- settings.gradle +- src +- main +- java | +- module-info.java | +- com | +- torutk | +- hellofx | +- HelloApplication.java | +- HelloController.java +-- resources +- com +- torutk +- hellofx +- hello-view.fxml
hello-view.fxmlは、VBoxレイアウトの中にLabelとButtonが貼られています。
HelloApplication.javaは、Applicationをextendsし、FXMLファイルをロードして表示する最低限の記述があります。
Javaアプリケーションの新規プロジェクトを作成(Gradle)¶
OS | Windows 10 64bit |
---|---|
IDE | IntelliJ IDEA Community Edition 2022.3 |
- 「Welcome to IntelliJ IDEA」画面から、[New Project]をクリック
- 「New Project」画面で次を設定
- [Name] プロジェクト名を入力
- [Location] プロジェクトの基点ディレクトリを作成するディレクトリを選択
- [Create Git repository]にチェックを入れると、プロジェクトがGitリポジトリとして生成される
- [Language] Javaを選択
- [Build system] Gradleを選択
- [JDK] プロジェクトのビルド・実行に使用するJDKを選択
- [Gradle DSL] Gradleの設定を記述するときの文法を選択
- [Advanced Settings]を開くと、GroupIdとArtifactIdを入力できる
これで、Gradleをビルドに使うプロジェクトが作成されます。
生成されたbuild.gradle¶
plugins {
id 'java'
}
group 'com.torutk.spectrum'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
}
test {
useJUnitPlatform()
}
生成されたプロジェクト・ディレクトリ¶
プロジェクト基点([Location]欄に指定したディレクトリ) +-- .idea +-- .gradle +-- gradle | +-- wrapper +-- src | +--main | | +--java | | +-- resources | +--test | +-- java | +-- resources +-- build.gradle +-- gradlew +-- gradlew.bat +-- settings.gradle
Gitリポジトリ初期化¶
生成したプロジェクトをGitリポジトリとします。
[VCS]メニュー > [Enable Version Control Integration]で「Enable Version Control Integration」画面が表示されるので、[Git]を選択し[OK]ボタンをクリック
- .ideaディレクトリ下に.gitignoreが生成される。内容は次のとおりです。
# Default ignored files /shelf/ /workspace.xml
.gitignoreはGitリポジトリのトップディレクトリに置きたいので、移動し内容を修正します。また、IntelliJ IDEAとGradleのプロジェクトに合わせて追記します。
.idea/shelf/ .idea/workspace.xml .idea/tasks.xml .idea/usage.statistics.xml .idea/dictionaries .idea/uiDesigner.xml .idea/gradle.xml out/
Gitリポジトリで管理するファイルの扱いに注意
Windowsのバッチファイルは、改行コードがCRLF、日本語文字列を扱うときは文字コードをCP932(IANA登録名:Windows-31J)とする必要があります。また、バイナリファイル(*.jar)をリポジトリに登録するときは改行コードの変換対象としないように非テキスト属性を付与しておくとファイルが壊れることがありません。.gitattributeファイルに*.jar binary
(-diff -textと同義)のように指定します。*.bat text eol=crlf
*.jar binary
Gradle 7.5への変更¶
予めローカルマシン上にGradle 7.5をインストールしておき、それを使う設定をします。
- Gradle 7.5
C:\Program Files\Java\gradle-7.5
にインストール - IntelliJ IDEAの[File]メニュー > [Settings]で「Settings」画面を開き、左側ペイン[Build,Execution,Deployment] > [Build Tools] > [Gradle]を選択、右側ペインの[Gradle projects]領域にある[Use Gradle from]欄にドロップダウンリストから[Specified location]を選択し、その右側のパス指定で上述インストールしたディレクトリを指定
こんなときどうするの?¶
コードのスタイル設定¶
インデントを変更しても反映されない¶
- 問題
[ファイル]メニュー > [設定] で「設定」画面を開き、左ペインの [エディタ] > [コード・スタイル] > [Kotlin] を選択、右ペインの[タブとインデント]タブでタブ・サイズとインデントの値を変更できます。変更後、ソースファイルの編集画面で改行をしてもインデントサイズは設定変更前の大きさのままです。 - 解決
対象ソースファイルに対して、[コード]メニュー > [コードの再フォーマット]を実行します。以降、変更したタブ・サイズとインデントが反映されます。
ファイルの文字コード¶
JavaのソースファイルはUTF-8に設定したのにプロパティファイルを作成したらWindows-31Jになった¶
[File]メニュー > [Settings] で「Settings」画面を開き、左側ペインの [Editor] > [File Encodings]をクリックすると、右側ペインに[Properties Files (*.properties)]という項があり、[Default encoding for properties files:]欄に文字コードを設定するようになっています。
ここを、UTF-8にします。