JetBrains IntelliJ IDEA ist eine der am häufigsten verwendeten IDEs (Integrated Development Environment) für Java. Es konkurriert mit Eclipse und Oracle NetBeans IDE.
In diesem Dokument geht es nur um den Einsatz von IntelliJ IDEA als Java-IDE, obwohl IntelliJ IDEA weit mehr bietet. Gezeigt werden erste Schritte für Einsteiger sowie wichtige Tastaturkürzel.
Einsteiger-Dokus finden Sie beispielsweise unter:
Zur Installation von JetBrains IntelliJ IDEA siehe: Install and set up IntelliJ IDEA.
Zur Installation unter Ubuntu-Linux siehe auch: Installation unter Ubuntu.
Falls Sie verschiedene Java-Versionen installiert haben, können Sie die für die IDE verwendete Java-Version in der idea-Startdatei vorgeben, indem Sie darin in einer zusätzlichen Zeile die Variable IDEA_JDK (bzw. IDEA_JDK_64 unter Windows) setzen, z.B. unter Linux so (passen Sie die Pfade an) (falls Sie nicht die Community Edition, sondern die Ultimate Edition verwenden, ersetzen Sie im Folgenden überall idea-IC durch idea-IU):
sudo gedit /opt/idea-IC/bin/idea.sh
... export IDEA_JDK=/usr/lib/jvm/java-8-oracle ...
Falls Sie große Projekte bearbeiten, sollte der verwendbare Speicher erhöht werden, z.B. unter Linux so:
sudo gedit /opt/idea-IC/bin/idea64.vmoptions
-Xms512m -Xmx2048m ...
Überprüfen Sie die Einstellungen für Software-Updates unter: "Help | Check for Updates...".
Falls Sie häufiger Linux-Bash-Skripte oder Windows-Batch-Skripte bearbeiten, sollten Sie entsprechende Plugins installieren. Wählen Sie in IntelliJ IDEA: "File | Settings... | Plugins | Browse repositories...", und dann für Linux-Bash-Skripte "BashSupport" sowie für Windows-Batch-Skripte "Batch Scripts Support".
Für Einsteiger kann die IntelliJ IDEA Default Keymap oder alternativ die im Folgenden gezeigte Liste interessant sein.
Falls Fenster fehlen oder "verschwunden" sind: Aktivieren Sie unter "View":
"Toolbar", "Tool Buttons", "Status Bar" und "Navigation Bar".
Falls Sie in der linken Spalte die "Tool Windows" "1: Project" und "7: Structure" gleichzeitig übereinander sehen wollen, klicken Sie mit der rechten Maustaste ganz links auf den senkrechten "7: Structure"-Button und wählen Sie "Split Mode".
Kontrollieren Sie die Einstellungen zur Einrückung unter "File | Settings | Editor | Code Style | Java | Tabs and Indents".
Die folgende Tabelle listet einige (subjektiv) besonders wichtige Tastatur-Shortcuts und Menübefehle auf. Bei einigen ist in der letzten Spalte das in etwa korrespondierende Eclipse-Kommando aufgeführt: Aber beachten Sie, dass dies oft keine genaue Entsprechung ist.
Weitere Tastatur-Shortcuts und Menübefehle finden Sie unter IntelliJ IDEA Default Keymap sowie Shortcuts: Korrespondierende unterschiedliche Tastaturkürzel in Idea und Eclipse.
Beachten Sie, dass einige Kommandos bereits vom Betriebssystem belegt sein können, beispielsweise die mit Strg+Alt beginnenden.
Tastatur-Shortcut | Menü | Erläuterung | Eclipse |
---|---|---|---|
(Strg+Alt+S) | File | Settings... | Keymap | Tastatur-Shortcuts | Strg+Umschalt+L |
Alt+1 | View | Tool Windows | Project | Project Tool Window öffnen | Alt+Umschalt+Q P |
Alt+9 | View | Tool Windows | Version Control | Version Control Tool Window öffnen | Alt+Umschalt+Q ... |
Umschalt+Escape | View | Tool Windows | ... | Tool Window schließen | |
Strg+E Alt+links, Alt+rechts Strg+Tab |
View | Recent Files Window | Editor Tabs | Previous/Next |
Zuletzt geöffnete Dateien Letzte Editierposition |
Strg+E Strg+F6 Alt+F 1... Alt+links, Alt+rechts |
Strg+Q | View | Quick Documentation | Javadoc | Umschalt+F2 |
Strg+Y | Zeile löschen | Strg+D | |
Strg+Leertaste Strg+Umschalt+Leertaste Strg+Umschalt+Enter Alt+Enter |
Edit | Complete Current Statement (File | Settings... | Editor | Inspections | Java) |
Sourcecode-Vervollständigung Zeige Vorschläge |
Strg+Leertaste Strg+1 |
Alt+Umschalt+Einfg | Edit | Column Selection Mode | Spaltenmodus | Alt+Umschalt+A |
Strg+F | Edit | Find | Find... | In Datei suchen | Strg+F |
F3 | Edit | Find | Find Next | Nächste Fundstelle | Strg+K |
Umschalt+F3 | Edit | Find | Find Previous | Vorherige Fundstelle | Strg+Umschalt+K |
Strg+F7 Strg+Umschalt+F7 |
Edit | Find | Find / Highlight Usages in File | Alle Fundstellen markieren | Strg+Alt+U Alt+Umschalt+O |
2 x Umschalt Strg+Umschalt+F |
Edit | Find | Find in Path... | In allen Dateien suchen | Strg+H |
(Alt+F7) Strg+Alt+F7 Strg+Alt+Umschalt+7 |
Edit | Find | Find Edit | Find | Show Usages Edit | Find | Find Usage Settings... |
Finde Verwendungen und Definitionen | Strg+Umschalt+G |
Strg+Umschalt+Backspace | Navigate | Last Edit Location | Letzte Editierposition | Strg+Q |
Strg+H | Navigate | Type Hierarchy | Klassenhierarchie | Strg+T F4 |
Strg+B Strg+Alt+B Strg+Mausklick |
Navigate | Declaration / Implementation(s) | Zur Deklaration/Implementation | F3 Strg+Mausklick |
Strg+N | Navigate | Class... | Java-Klasse öffnen | Strg+Umschalt+T |
Strg+Umschalt+N | Navigate | File... | Datei oder Ressource öffnen | Strg+Umschalt+R |
Strg+G | Navigate | Line... | Gehe zu Zeile | Strg+L |
Alt+Einfg | Code | Generate... | Generierten Code einfügen | |
psvm Strg+J sout Strg+J it Strg+J |
Code | Insert Life Template... | main( String[] args ) { } System.out.println(); iterate |
ma Strg+Leertaste syso Strg+Leertaste for Strg+Leertaste |
(Strg+Alt+T) | Code | Surround With... | Sourcecode umgeben (z.B. try/catch) | |
Strg+Alt+O Alt+Enter, Import class |
Code | Optimize Imports - |
Imports optimieren Einzelnen Import hinzufügen |
Strg+Umschalt+O |
(Strg+Alt+L) | Code | Reformat Code | Formatierung | Strg+Umschalt+F |
Strg+/ | Code | Comment | Sourcecode auskommentieren | Strg+/ |
Umschalt+F6 | Refactor | Rename | Umbenennen | Alt+Umschalt+R |
Strg+F9 | Build | Make Project | Projekt bauen | (Strg+S) |
Alt+Umschalt+F10 | Run | Run... | Auszuführende Applikation auswählen | (Alt+R N) |
Umschalt+F10 | Run | Run | Applikation ausführen | Strg+F11 |
Umschalt+F9 | Run | Debug | Debuggen | F11 |
F7 / F8 / Umschalt+F8 / Alt+F9 / F9 / Strg+F2 |
Run | Step Into / Over / Out / to Cursor / Resume / Stop |
Debug-Schritte | F5 / F6 / F7 / F8 / Strg+F2 |
Strg+F8 | Run | Toggle Line Breakpoint | Breakpoint aktivieren/deaktivieren | Strg+Umschalt+B |
(Alt+F8) | Run | Evaluate Expression... | Wert von Ausdruck/Variable ermitteln | Strg+Umschalt+I |
Strg+Umschalt+F12 | Window | Activate Tool Window | Hide All Windows | Editor-Fenster maximieren | Strg+M |
Starten Sie IntelliJ IDEA und wählen Sie: "File | New | Project... | Java".
Tragen Sie unter "Project SDK" das zum Bauen des Projekts gewünschte Java-JDK ein.
Dies kann ein anderes Java sein, als das, womit IntelliJ IDEA betrieben wird.
Wählen Sie "Next | Next".
Setzen Sie als "Project Name": IdeaHalloWelt
und als "Project Location" unter Linux: ~/MeinWorkspace/IdeaHalloWelt
bzw. unter Windows: \MeinWorkspace\IdeaHalloWelt
und klicken Sie auf "Finish | OK | This Window".
Links erscheint das neue Projekt "IdeaHalloWelt" im "Project Tool Window" (falls nicht: betätigen Sie Alt+1). Öffnen Sie darin den Baum unter dem IdeaHalloWelt-Projektnamen. Klicken Sie mit der rechten Maustaste auf den src-Ordner und wählen Sie: "New | Java Class". Tragen Sie als "Name" ein: de.meinefirma.meinprojekt.MeineApp und betätigen Sie "OK".
In der Mitte erscheint im Editor-Fenster die Java-Klasse. Starten Sie hinter der geschweiften "{"-Klammer eine neue Zeile, geben Sie den Buchstaben "p" ein und betätigen Sie Strg+J. Wählen Sie in der erscheinenden Liste "psvm" und bestätigen Sie mit der Eingabetaste. Sie erhalten eine main()-Methode. Geben Sie den Buchstaben "s" ein, betätigen Sie Strg+J, und wählen Sie "sout". Sie erhalten eine System.out.println()-Anweisung. Fügen Sie "Hallo Welt" ein. Die Klasse wird automatisch gespeichert. Das Ergebnis sieht so aus:
package de.meinefirma.meinprojekt; public class MeineApp { public static void main( String[] args ) { System.out.println( "Hallo Welt" ); } }
Um die Java-Klasse ausführen zu können, muss das Projekt zuerst gebaut werden.
Dies kann auf verschiedene Arten gestartet werden, beispielsweise:
- Per Tastatur-Shortcut: Strg+F9.
- Per Mausklick in der Toolbar auf den nach unten zeigenden grünen Pfeil.
- Über die Menüleiste: "Build | Make Project".
Um die Java-Klasse auszuführen, betätigen Sie Alt+Umschalt+F10 (oder über die Menüleiste: "Run | Run...") und klicken auf den Klassennamen MeineApp. Unten öffnet sich das "Run"-Fenster und es erscheint die Ausgabe:
Hallo Welt
Dabei wurde eine "Run Configuration" angelegt (siehe: "Run | Edit Configurations"). Ab jetzt können Sie die Ausführung auch über Umschalt+F10 oder über den nach rechts zeigenden grünen Pfeil in der Toolbar starten.
Um das "Run"-Fenster wieder zu schließen, klicken Sie in das Fenster und betätigen: Umschalt+Escape.
Folgendermaßen können Sie debuggen: Klicken Sie im Editor-Fenster in den grauen Bereich links neben der System.out.println()-Zeile. Es erscheint eine rote Kugel als Symbol für den Breakpoint. Betätigen Sie Umschalt+F9 oder klicken Sie in der Toolbar auf das grüne Käfer-Icon. Sehen Sie sich im "Run"-Menü die verschiedenen Optionen wie beispielsweise Step into/over/out an. Betätigen Sie F9 (Resume), um zum Ende fortzufahren. Klicken Sie in das Debugger-Fenster und schließen Sie es mit: Umschalt+Escape.
Erzeugen Sie folgendermaßen eine Jar-Datei Ihrer Anwendung: Wählen Sie in der Menüleiste "File | Project Structure...". Klicken Sie links auf "Artifacts", dann auf das grüne + und wählen Sie "JAR | From modules with dependencies...". Wählen Sie mit dem Dreipunkte-Button neben "Main Class" den Eintrag: de.meinefirma.meinprojekt.MeineApp und fahren Sie fort mit "OK | OK". Wählen Sie in der Menüleiste "Build | Build Artifacts... | IdeaHalloWelt:jar | Build". Im Verzeichnis IdeaHalloWelt/out/artifacts/IdeaHalloWelt_jar finden Sie die Datei: IdeaHalloWelt.jar. Führen Sie sie folgendermaßen aus:
cd ~/MeinWorkspace/IdeaHalloWelt
java -jar out/artifacts/IdeaHalloWelt_jar/IdeaHalloWelt.jar
Sie erhalten:
Hallo Welt
IntelliJ IDEA kann problemlos Maven-Projekte öffnen und bearbeiten (wesentlich besser als Eclipse). Um dies zu zeigen erstellen wir ein minimales Maven-Projekt.
Maven muss installiert sein. Siehe hierzu: Installation von Maven 3 unter Ubuntu bzw. Installation von Maven 3 unter Windows.
Falls noch nicht vorhanden, legen Sie ein Projekteverzeichnis an:
mkdir ~/MeinWorkspace
cd ~/MeinWorkspace
mkdir \MeinWorkspace
cd \MeinWorkspace
Erstellen Sie darin ein Hello-World-Maven-Projekt:
mvn archetype:generate -DinteractiveMode=false -DgroupId=de.meinefirma.meinprojekt -DartifactId=MvnHelloApp
cd MvnHelloApp
Falls Sie tree installiert haben, lassen Sie sich die generierte Verzeichnisstruktur anzeigen, unter Linux mit "tree" und unter Windows mit "tree /F":
~/MeinWorkspace/MvnHelloApp +-- pom.xml +-- src +-- main ¦ +-- java ¦ +-- de ¦ +-- meinefirma ¦ +-- meinprojekt ¦ +-- App.java +-- test +-- java +-- de +-- meinefirma +-- meinprojekt +-- AppTest.java
Compilieren und bauen Sie die Hello-World-Maven-Anwendung und führen Sie das Ergebnisartefakt aus:
mvn package
java -cp target/MvnHelloApp-1.0-SNAPSHOT.jar de.meinefirma.meinprojekt.App
Sie erhalten:
Hello World!
Um das Maven-Projekt in IntelliJ IDEA zu öffnen, wählen Sie in der Menüleiste "File | Open...". Tragen Sie als Pfad ~/MeinWorkspace/MvnHelloApp ein (bzw. unter Windows \MeinWorkspace\MvnHelloApp) und bestätigen Sie mit "OK".
Falls das "Project Tool Window" nicht geöffnet ist: Öffnen Sie es mit Alt+1.
Laden Sie die Applikationsklasse: Strg+N | App.
Falls die main()-Methode in nur einer einzigen Zeile angezeigt wird:
Klicken Sie in dieser Zeile am linken Rand des Editor-Fensters auf das [+]-Symbol, um den Java-Code aufzuklappen.
Führen Sie die Applikationsklasse aus: Strg+F9 | Alt+Umschalt+F10 | App | Run.
Hello World!
Führen Sie den JUnit-Modultest aus: Strg+N | AppTest | Alt+Umschalt+F10 | AppTest | Run.
IntelliJ IDEA versteht Maven-Multimodulprojekte, und zwar sowohl im "Flat Multimodul Project Layout" als auch im "Hierarchical Multimodul Project Layout".
Hier soll es nicht um Java-Sourcecode gehen, sondern um das Bearbeiten von Maven-Multimodulprojekten in IntelliJ IDEA. Zur Vereinfachung erfolgt ein Download zweier fertiger Maven-Multimodulprojekte in den beiden Project-Layouts. Infos zu diesen Maven-Multimodulprojekten finden Sie in: Maven-Multimodulprojekte.
Führen Sie folgende Kommandos aus (hier nur für Linux gezeigt):
cd ~/MeinWorkspace
mkdir Mvn-MMP
cd Mvn-MMP
wget http://www.torsten-horn.de/proj/Mvn-MMP.zip
unzip Mvn-MMP.zip
rm Mvn-MMP.zip
Bauen Sie die beiden gemeinsam genutzten Module masterpom und commons:
cd ~/MeinWorkspace/Mvn-MMP/MeinWorkspace
ls -l
cd masterpom
mvn clean install
cd ../commons
mvn clean install
Bauen Sie das Flat-Multimodulprojekt (im "Flat Multimodul Project Layout") mit Maven, und führen Sie es aus.
Entfernen Sie in der pom.xml im Verzeichnis ~/MeinWorkspace/Mvn-MMP/MeinWorkspace/flat-web folgenden Plugin-Eintrag:
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>buildnumber-maven-plugin</artifactId> </plugin>
Führen Sie aus:
cd ~/MeinWorkspace/Mvn-MMP/MeinWorkspace
cd flat-multiproj
mvn clean install
cd ../flat-web
mvn -Djetty.port=9999 jetty:run-war
Warten Sie bis Started Jetty Server erscheint, und rufen Sie auf:
http://localhost:9999/flat-webSie erhalten (gekürzt):
Hello World! Attribute in der META-INF/MANIFEST.MF: Modulname=flat-web Modulversion=3.0-SNAPSHOT Created-By=Apache Maven 3.3.9 Build-Jdk=1.8 ... MeineBean: MeineBean.berechne( 1, 2 ): 3
Beenden Sie den Jetty-Webserver mit Strg+C.
Bauen Sie das Hierarchy-Multimodulprojekt (im "Hierarchical Multimodul Project Layout") mit Maven, und führen Sie es aus.
Entfernen Sie in der pom.xml im Verzeichnis ~/MeinWorkspace/Mvn-MMP/MeinWorkspace/hierarchy-multiproj/hierarchy-web folgenden Plugin-Eintrag:
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>buildnumber-maven-plugin</artifactId> </plugin>
Führen Sie aus:
cd ~/MeinWorkspace/Mvn-MMP/MeinWorkspace
cd hierarchy-multiproj
mvn clean install
cd hierarchy-web
mvn -Djetty.port=9999 jetty:run-war
Warten Sie bis Started Jetty Server erscheint, und rufen Sie auf:
http://localhost:9999/hierarchy-webSie erhalten (gekürzt):
Hello World! Attribute in der META-INF/MANIFEST.MF: Modulname=hierarchy-web Modulversion=4.0-SNAPSHOT Created-By=Apache Maven 3.3.9 Build-Jdk=1.8 ... MeineBean: MeineBean.berechne( 1, 2 ): 3
Beenden Sie den Jetty-Webserver mit Strg+C.
Um das Flat-Multimodulprojekt in IntelliJ IDEA zu öffnen, wählen Sie in der Menüleiste "File | Open...". Tragen Sie als Pfad ~/MeinWorkspace/Mvn-MMP/MeinWorkspace/flat-multiproj ein und bestätigen Sie mit "OK".
Wählen Sie "Run | Edit Configurations | oben links das grüne +-Zeichen | Maven". Tragen Sie als Name ein: flat-multiproj.
Tragen Sie unter dem Parameters-Tabulator-Reiter ein
(leider funktioniert hier die Abkürzung ~ für /home/<MeinName> nicht,
ersetzen Sie <MeinName> durch den PC-Namen):
Working Directory: /home/<MeinName>/MeinWorkspace/Mvn-MMP/MeinWorkspace/flat-web
Command line: jetty:run-war
Schalten Sie um auf den Runner-Tabulator-Reiter und konfigurieren Sie:
Use project settings: deaktivieren
VM Options: -Djetty.port=9999
Speichern Sie mit OK.
Bauen Sie das Projekt mit Strg+F9 und starten Sie den Jetty-Webserver mit Umschalt+F10. Warten Sie bis Started Jetty Server erscheint, und rufen Sie auf: http://localhost:9999/flat-web. Sie erhalten die bereits oben gesehene flat-web-Webseite.
Beenden Sie den Jetty-Webserver mit Strg+F2 (oder durch Klick auf das rote Quadrat).
Um das Hierarchy-Multimodulprojekt in IntelliJ IDEA zu öffnen, wählen Sie in der Menüleiste "File | Open...". Tragen Sie als Pfad ~/MeinWorkspace/Mvn-MMP/MeinWorkspace/hierarchy-multiproj ein und bestätigen Sie mit "OK".
Wählen Sie "Run | Edit Configurations | oben links das grüne +-Zeichen | Maven". Tragen Sie als Name ein: hierarchy-multiproj.
Tragen Sie unter dem Parameters-Tabulator-Reiter ein
(ersetzen Sie <MeinName>):
Working Directory: /home/<MeinName>/MeinWorkspace/Mvn-MMP/MeinWorkspace/hierarchy-multiproj/hierarchy-web
Command line: jetty:run-war
Schalten Sie um auf den Runner-Tabulator-Reiter und konfigurieren Sie:
Use project settings: deaktivieren
VM Options: -Djetty.port=9999
Speichern Sie mit OK.
Bauen Sie das Projekt mit Strg+F9 und starten Sie den Jetty-Webserver mit Umschalt+F10. Warten Sie bis Started Jetty Server erscheint, und rufen Sie auf: http://localhost:9999/hierarchy-web. Sie erhalten die bereits oben gesehene hierarchy-web-Webseite.
Beenden Sie den Jetty-Webserver mit Strg+F2 (oder durch Klick auf das rote Quadrat).
Vergleichen Sie die parallele Projektstruktur beim Flat-Multimodulprojekt mit der hierarchischen Projektstruktur beim Hierarchy-Multimodulprojekt:
Siehe hierzu die Jigsaw-Demos mit IntelliJ IDEA: Jigsaw-Dep-Demo und Jigsaw-Service-Demo.