フォーラム » つれづれ Java編 »
IntelliJ IDEA
IntelliJ IDEA Community版およびUltimate版をインストールして動かしてみたメモなど。
- IntelliJ IDEA Community 2017.1.4版~
- IntelliJ IDEA Ultimate 2022.2版〜
- Windows 10 Pro 64bit
- macOS 11 Big Sur
返答 (34)
Android Emulator(HAXM)の設定 - 高橋 徹 さんが3年以上前に追加
Community版ではCSSファイルの編集モードが利用できない - 高橋 徹 さんが3年以上前に追加
残念なことに、CSS(Cascading Style Sheet)の編集機能は、Community版では搭載されておらず、Ultimate版の対応となる。
JavaFXプログラミングで Scene Builderを使い、JavaFX CSSで見栄えを記述する際に、編集機能が利用できないのが少々残念。
シーケンス図を作成 - 高橋 徹 さんが2年以上前に追加
IntelliJ IDEAのプラグインでシーケンス図を生成するものが幾つかある。
- SequenceDiagram
Javaソースコードからシーケンス図を生成、画像生成、PlantUMLへのエクスポートなど - PlantUML Integration
Graphvizが別途必要(シーケンス図だけなら不要)
設定 Languages & Frameworks > PlantUML で、Graphviz dot executablesにGraphvizのdotコマンドのパスを設定
macOS: homebrewでGraphvizインストール ->brew install graphviz
GUI Designerを使用する時は、純粋なGradleプロジェクトにはならない - 高橋 徹 さんが約2年前に追加
IntelliJ IDEAには、SwingのGUIレイアウトをWYSIWYGに作成するGUI Designerが搭載されています。
これを使うと、Swingの画面をポトペタ作成できるうえ、データバインディングも使えて大変便利です。
しかし、GradleプロジェクトでGUI Designerを利用しようとすると、ビルド時にスペシャルな仕掛けが入らないので実行できないコードが生成されてしまいます。
スペシャルな仕掛け¶
GUIフォームと対になるJavaソースファイルをビルドすると、IntelliJ IDEAはそのコンストラクタにレイアウト生成とデータバインディングを行う処理を埋め込みます。
特殊な処理
public class MainFrame extends JFrame {
private JTextField nameField;
private JButton oKButton;
private JPanel mainPanel;
public MainFrame() {
this.$$$setupUI$$$();
:
上述のコードでコンストラクタに、this.$$$setupUI$$$() が挿入されており、このさきでレイアウト生成とデータバインディングが処理されます。
IntelliJ IDEAのGradleプロジェクトでGUI Designerを使用するには¶
- [File]メニュー > [Settings] で「Settings」画面を開き、左ペインで[Build, Execution, Deployment] > [Build Tools] > [Gradle]を選択、右ペインで、[Gradle projects]領域の[Build and run using]の設定を次のように変更
- [Gradle(Default)] -> [IntelliJ IDEA]
この設定で、ソースファイルをビルドするときはGradleではなくIntelliJに処理を委譲し、GUI Designerのスペシャルな埋め込みが行われるようになります。
ただし、Gradleだけでビルドすることができなくなります。
フォント UDEV Gothic - 高橋 徹 さんがほぼ2年前に追加
最近のIntelliJ IDEAは、デフォルトのエディタのフォントが JetBrains Mono となっています。
英字フォントは、プログラミング用に最適な、数字のゼロと英字のオー、英字のアイとエルが視覚的に判別できる書体です。しかし、日本語フォントが含まれないため、MSゴシックにフォールバックされ、日本語がギザギザとなってしまいます。
最近(2022年)、英数字はJetBrains Mono、日本語文字はBIZ UDゴシックを組み合わせた UDEV Gothicフォントが無償提供されています。
https://github.com/yuru7/udev-gothic
フォントは4種類あります。
- UDEV Gothic
- 半角:全角の幅が 3:5 の UDEVGothic35
- 全角記号(■→など)をJetBrains MonoではなくBIZ UDゴシックを優先するUDEVGothic JPDOC
- リガチャ(合字)対応のUDEVGothicLG
UDEV Gothic を使用するには、githubのUDEV Gothicページからダウンロードしたアーカイブの中から次のファイルをインストールします。
- UDEVGothic-Bold.ttf
- UDEVGothic-BoldItalic.ttf
- UDEVGothic-Italic.ttf
- UDEVGothic-Regular.ttf
IntelliJ IDEA 2023.2.4とGradleとJDK 21 - 高橋 徹 さんが約1年前に追加
JDK 21に対応するGradleのバージョンは8.4以降です。
IntelliJ IDEA 2023.2.4はJDK 21に対応していますが、同梱するGradleのバージョンは8.2でJDK 21には対応していません。
IntelliJ IDEA 2023.2.4で、JDK 21を使用してGradleをビルドツールに使うプロジェクトを作成するには、Gradle 8.4を別途ローカルインストールして使用する必要があります。
HomebrewでGradle 8.4をインストールした場合の設定メモ
- Homebrewでインストールしたgradle
~ % which gradle /opt/homebrew/bin/gradle
IntelliJ で、Gradleのパスを指定する際は、/opt/homebrew/binでは認識されないので、Gradleのパッケージが展開された場所を探してみました。
~ % ls -l /opt/homebrew/Cellar/gradle/8.4 total 72 -rw-r--r-- 1 TTakahashi admin 3675 10 27 19:21 INSTALL_RECEIPT.json -rw-r--r-- 1 TTakahashi admin 23606 2 1 1980 LICENSE -rw-r--r-- 1 TTakahashi admin 868 2 1 1980 NOTICE -rw-r--r-- 1 TTakahashi admin 976 2 1 1980 README drwxr-xr-x 3 TTakahashi admin 96 10 27 19:21 bin drwxr-xr-x 6 TTakahashi admin 192 2 1 1980 libexec
ここを指定しても、Invalid Grade SDK installationとエラーになってしまいます(下図、赤枠はエラー)
ここの一つしたlibexecを選択すると、Gradleディレクトリとして認識してくれるようです。
% ls /opt/homebrew/Cellar/gradle/8.4/libexec bin docs lib src
ただし、今度は次の警告メッセージが表示されます。
JetBrainsのBugサイトでこの件と同じと思われるissueが掲示されていました。
https://youtrack.jetbrains.com/issue/IDEA-335643
現時点では、IntelliJ IDEA同梱のGradle 8.2でまずはプロジェクトを作成し、その後でwrapperのgradleのバージョンを手動更新することにします。
しかし、この後、IntelliJ IDEA が固まってしまいました。Gradle: Downloading gradle-8.2-bin.zip ... とのメッセージが出ていますが、操作に応答がなくなってしまいました。
再度プロジェクトを作成したところ、固まらずに進みました。
wrapperのGradleを8.2から8.4に更新する方法を探します。
IntelliJ IDEA 2023.3リリース - 高橋 徹 さんが約1年前に追加
2023-12-07付 IntelliJ IDEA 2023.3 Is Out! のニュースがJetBrains社のブログに記載ありました。Java関連では、Java 21の対応強化があります。
前のIntelliJ IDEA 2023.2.5でもOpenJDK 21を使用したビルド・実行が可能でしたが、Gradleをビルドツールに使う場合、同梱されるGradleがOpenJDK 21対応していない8.3-rc版で、差し替え(wrapperのバージョンアップまたはローカルにインストールしたGradle 8.4/8.5を設定)などの回避が必要でした。また、それでも警告(Gradle 8.4/8.5がJDK 21に対応していない云々)を出してしまっている等が残ります。
今回は、Java 21に一応完全対応とのことです。同梱されるGradleも 8.5になっているようです 新規にインストールしたIntelliJ IDEA 2023.3でGradleプロジェクトを作成したところ、Wrapperで選択できる(表示された)バージョンは8.4でした。プロジェクトを生成後、設定ファイルを書き換えることで8.5に変更します。
Gradle wrapperのバージョンを変更 - 高橋 徹 さんが12ヶ月前に追加
IntelliJ で開いたGradleプロジェクト(wrapper使用)で使用するGradleのバージョンを変更する方法を調べた。
JetBrains社のチュートリアル動画によると、gradle/gradle-wrapper.propertiesの記述を修正すれば良い。
- distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
+ distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
https://www.jetbrains.com/guide/java/tutorials/working-with-gradle/gradle-wrapper/
後からGradleプロジェクトにするには? - 高橋 徹 さんが12ヶ月前に追加
ビルドツールを使用しない空のプロジェクトを作成し、後からGradleプロジェクトにしたい場合
空のリポジトリ(README.mdだけあるような)を共有リポジトリに作成し、それをIntelliJ プロジェクトにしたい場合
IntelliJの New ProjectでGradleプロジェクトを作る方法は、新たにディレクトリを作るか、空のディレクトリに作る必要があるので、クローンしたディレクトリをプロジェクトにするには少しハックが必要なようです。
試してみたこと
- IntelliJ の New > Project from Version Control... から、Gitリポジトリを指定して生成
- 空の(README.mdが置かれた)IntelliJ ビルドプロジェクトが生成された
- プロジェクト直下に build.gradle.ktsファイルを新規作成する
- 右下になんちゃらメッセージが出るので、OKか何かで進めると、Gradleをダウンロードしてwrapperを作ってくれる
- あとは自分で頑張ってbuild.gradle.ktsを記述する
unitテスト、リポジトリ参照を除いた割と最小限のbuild.gradle.ktsの記述
plugins {
application
}
group = "com.torutk"
version = "1.0-SNAPSHOT"
java {
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
}
application {
mainModule.set("com.torutk.hello")
mainClass.set("com.torutk.hello.HelloApp")
}