IntelliJ IDEA w akcji – Tworzenie nowego projektu i podstawy IntelliJ IDEA

Po uruchomieniu IDEI po raz pierwszy, gdy nie utworzyłeś ani nie zaimportowałeś wcześniej żadnego projektu, zobaczysz poniższe okno:

Okno startowe IntelliJ IDEA
Okno startowe IntelliJ IDEA

Kliknij Create New Project. Pojawi się kolejne okno, w którym będziesz mógł wybrać rodzaj projektu, jaki chcesz utworzyć. Wybierz „Java” z listy po lewej stronie i kliknij przycisk Next na dole:

Wybieranie rodzaju projektu do utworzenia
Wybieranie rodzaju projektu do utworzenia

W kolejnym oknie ponownie kliknij przycisk Next – IDEA pozwala na tworzenie projektów z różnych szablonów, ale nie będziemy w tej chwili korzystać z tej funkcjonalności.

W następnym oknie IDEA zapyta o nazwę projektu oraz lokalizację na dysku, gdzie ma on zostać utworzony – wpisz nazwę, na przykład pierwszy-projekt-idea, i wskaż katalog, gdzie projekt ma zostać zapisany na dysku. Możesz utworzyć na swoim dysku folder dedykowany dla projektów tworzonych w IntelliJ IDEA, a następnie wskazać go w poniższym oknie. Ja w tym celu utworzyłem katalog programowanie\java na moim dysku D.

Uwaga: upewnij się, że po wpisaniu nazwy projektu i wybraniu katalogu na dysku, nazwa Twojego projektu widnieje na końcu wskazanego na dysku katalogu – jeżeli najpierw podasz nazwę projektu, a potem wybierzesz katalog na dysku, to nazwa projektu nie będzie uwzględniona – musisz ją dopisać na końcu wskazanego katalogu, już po jego wybraniu:

Podawanie nazwy i lokalizacji nowego projektu
Podawanie nazwy i lokalizacji nowego projektu

Po kliknięciu przycisku Finish, jeżeli wskazany katalog nie istnieje na dysku, IDEA zapyta, czy chcesz, aby został utworzony – kliknij przycisk OK. Po chwili zobaczysz IntelliJ IDEA w całej okazałości z Twoim projektem:

Okno IntelliJ IDEA z pustym projektem
Okno IntelliJ IDEA z pustym projektem

Po utworzeniu bądź zaimportowaniu jakiegokolwiek projektu, IDEA będzie go automatycznie otwierać, gdy ponownie ją uruchomisz. IDEA domyślnie zawsze otwiera ostatni projekt, nad jakim pracowałeś.

Główne elementy okna IntelliJ IDEA

Na poniższym obrazie zaznaczyłem najważniejsze elementy okna IDEI:

Główne elementy okna IntelliJ IDEA
Główne elementy okna IntelliJ IDEA

Krótki opis każdego z wyszczególnionych elementów:

  • Menu główne – sposób dostępu do bardzo wielu funkcjonalności IDEI i ustawień.
  • Lista plików i katalogów projektu – pliki i katalogi, z których składa się nasz projekt – są one prezentowane w formie hierarchii – katalogi można „otwierać” po kliknięciu znaku trójkąta po lewej stronie nazwy. Po kliknięciu prawym przyciskiem myszy na jeden z elementów tej listy, otwiera się dodatkowe menu, udostępniające wiele dodatkowych funkcji i pozwalające na wykonywanie różnych operacji na plikach i katalogach.
  • Edytor kodu źródłowego – w tej chwili zamknięty, ponieważ żaden plik projektu nie jest otwarty – miejsce, gdzie wyświetlana jest treść plików naszego projektu i gdzie możemy je edytować.
  • Konfiguracje uruchomienia – przycisk otwierający konfigurator, w którym możemy definiować sposoby na uruchamianie naszego projektu. Dla przykładu, możemy tam skonfigurować uruchamianie konkretnej klasy projektu, która posiada metodę main. Innym przykładem jest konfiguracja uruchamiania testów jednostkowych.
  • Uruchamianie i zatrzymywanie programu – przyciski służące do uruchamiania i zatrzymywania naszego programu w normalnym trybie lub w trybie debuggowania. Sposób uruchomienia definiowany jest przez wybranie konfiguracji uruchomienia utworzonej za pomocą Konfiguratora uruchomień opisanego powyżej.
  • Panel z zakładkami „build tools” – panel z przyciskami otwierającymi okna z funkcjami dedykowanymi dla projektów korzystających z narzędzi do zarządzania i budowania projektów, takimi jak Maven oraz Gradle.
  • Otwieranie Terminalu i listy TODO – przyciski otwierające wbudowany w IntelliJ IDEA Terminal (linię poleceń), w której możemy wykonywać komendy, oraz listę z „rzeczami do zrobienia” (tzw. lista TODO), które IDEA śledzi w naszym kodzie w komentarzach, które rozpoczynają się od słowa „TODO”.

Struktura pierwszego projektu

Jeżeli na liście plików i katalogów klikniesz lewym przyciskiem myszy na mały znak trójkąta, rozwinie się zawartość projektu. Zobaczysz wtedy, że nowy, pusty projekt, posiada kilka automatycznie wygenerowanych przez IntelliJ IDEA plików i katalogów:

Struktura nowego projektu
Struktura nowego projektu

Plik pierwszy-projekt-idea.iml oraz katalog .idea i jego zawartość to konfiguracja IntelliJ IDEA i nie musisz się nimi przejmować. IDEA będzie zapamiętywała w tych plikach różne opcje projektu, które potencjalnie będziesz dla niego ustawiał.

IDEA utworzyła także katalog o nazwie src. Jest to katalog, do którego powinniśmy dodawać pliki, z których nasz projekt będzie się składał – za chwilę dodamy tam naszą pierwszą klasę.

Jeżeli korzystasz z Gita, to informacje o plikach i katalogach konfiguracyjnych IntelliJ IDEA zazwyczaj umieszcza się w pliku .gitignore, aby Git nie brał ich pod uwagę podczas wersjonowania repozytorium. Przykładowa zawartość pliku .gitignore wyłączającego wersjonowanie konfiguracji IDEA dla projektu:

.idea/
*.iml

Dodawanie klasy

Aby dodać nową klasę (lub inny plik) do projektu, kliknij prawym przyciskiem myszy na katalog src na liście plików i katalogów projektu, a następnie wybierz z menu „New” i „Java Class”:

Menu służące do dodawania nowej klasy do projektu
Menu służące do dodawania nowej klasy do projektu

W małym oknie, które się pojawi, możesz wybrać typ pliku, jaki chcesz utworzyć – poza klasą, masz do wyboru np. interfejs lub typ Enum.

Nazwę klasy możesz poprzedzić nazwą pakietu, w jakim klasa ma zostać umieszczona – poszczególne elementy pakietu powinny być rozdzielone kropkami. Ostatni człon uznany będzie za nazwę klasy. Ja wpisałem com.kursjava.WitajIdea i zatwierdziłem klawiszem Enter:

Dodawanie nowej klasy w IDEA
Dodawanie nowej klasy w IDEA

W ten sposób do projektu dodana została klasa WitajIdea, która należy do pakietu com.kursjava, więc docelowo znajduje się ona w katalogu src/com/kursjava. Katalog src to katalog nadrzędny wszystkich klas naszego projektu. Po utworzeniu klasy, IDEA otwiera ją w edytorze kodu, gdzie możesz zacząć ją edytować:

Nowa klasa została dodana do projektu
Nowa klasa została dodana do projektu

Zawartość naszej klasy została automatycznie wygenerowana przez IntelliJ IDEA – jest to po prostu instrukcja package oraz klasa WitajIdea z pustym ciałem. Możemy teraz zacząć pisać kod źródłowy.

Zauważ, że na liście plików i katalogów pakiet com.kursjava naszej klasy jest „sklejony”. Pakiet ten to dwa katalogi: com oraz kursjava. Normalnie hierarchia naszego projektu byłaby prezentowana w następujący sposób:

src
|
`-- com
    |
    `-- kursjava
        |
        `-- WitajIdea.java

Jednakże IDEA, dla naszej wygody, automatycznie „skleja” nazwy katalogów i podkatalogów pakietu, jeżeli dany katalog nie zawiera plików i ma tylko jeden bezpośredni podkatalog. Ma to na celu skrócenie listy plików i katalogów.

Aby szybko otworzyć plik należący do projektu do edycji w edytorze kodu IDEA, kliknij na niego dwa razy lewym przyciskiem myszki w strukturze plików i katalogów projektu. Aby szybko zamknąć aktualnie otwarty plik, skorzystaj ze skrótu Ctrl + F4.

Metoda main i skróty psvm i sout

Do klasy WitajIdea metodę main oraz instrukcję System.out.println, która wypisze na ekran krótki komunikat.

Moglibyśmy wpisać sygnaturę metody main oraz instrukcję System.out.println „ręcznie”, ale IntelliJ IDEA udostępnia nam kilka przydatnych skrótów. Jeżeli w edytorze kodu napiszesz litery psvm lub main i po chwili naciśniesz Enter (gdy pojawi się podpowiedź odnośnie tego skrótu), IDEA wstawi do Twojej klasy pustą metodę main:

Podpowiedź wyświetlana przez IDEA po wpisaniu skrótu psvm
Podpowiedź wyświetlana przez IDEA po wpisaniu skrótu psvm

Po naciśnięciu klawisza Enter, klasa WitajIdea wygląda następująco:

package com.kursjava;

public class WitajIdea {
  public static void main(String[] args) {
    
  }
}

IDEA wstawiła do klasy pustą metodę main. Zauważ na powyższym obrazie, że przy nazwie pliku na zakładce w górnej części edytora kodu, po lewej stronie nazwy pliku, widnieje gwiazdka *. Oznacza ona, że do pliku zostały wprowadzone zmiany, które nie zostały jeszcze zapisane. Najszybszym sposobem zapisania zmian jest skrót Ctrl + s.

Kolejnym skrótem, z którego skorzystamy, jest sout. Gdy napiszesz ten skrót i po chwili naciśniesz Enter, IDEA wstawi instrukcję System.out.println:

package com.kursjava;

public class WitajIdea {
  public static void main(String[] args) {
    System.out.println();
  }
}

Jako argument do println możesz przekazać Witaj IDEA!:

package com.kursjava;

public class WitajIdea {
  public static void main(String[] args) {
    System.out.println("Witaj IDEA!");
  }
}

Uruchamianie programu

Nasza klasa ma metodę main, więc możemy ją uruchomić. Uruchamianie aplikacji w IntelliJ IDEA odbywa się poprzez utworzenie „konfiguracji uruchomienia”.

Taka konfiguracja informuje IntelliJ IDEA którą klasę, i w jaki sposób, powinna uruchomić. Dostępnych jest wiele predefiniowanych „szablonów” uruchomieniowych. My skorzystamy z „klasycznego” sposobu – wskażemy IDEI główną klasę naszego projektu.

Konfigurację uruchomienia tworzy się klikając przycisk „Add Configuration...” w prawej, górnej części okna IDEI:

Lokalizacja przycisku Add Configuration...
Lokalizacja przycisku Add Configuration...

Po kliknięciu zaznaczonego powyżej przycisku pojawi się okno zatytułowane „Run/Debug Configurations”. Aby dodać nową konfigurację, kliknij na przycisk z plusem +, następnie wybierz z listy Application:

Lista, na której wybieramy rodzaj konfiguracji uruchomieniowej do utworzenia
Lista, na której wybieramy rodzaj konfiguracji uruchomieniowej do utworzenia

Na liście zobaczysz wiele rodzajów konfiguracji do wyboru, które możesz utworzyć dla swojego projektu. Typ „Application” służy do uruchamiania wskazanej przez Ciebie klasy Java Twojego projektu, która zawiera metodę main.

Po kliknięciu na liście na „Application”, w tym samym oknie, po prawej stronie, pojawią się pola edycyjne wybranego rodzaju konfiguracji:

Konfiguracja uruchomienia klasy WitajIdea
Konfiguracja uruchomienia klasy WitajIdea

W polu „Name” wpisz dowolną nazwę, która będzie skojarzona z tą konfiguracją (możesz tworzyć wiele konfiguracji i nadanie im nazw pozwoli Ci na łatwe odróżnienie ich od siebie) – ja wpisałem „Uruchom WitajIdea”. Następnie, w polu „Main class” podaj pełną nazwę klasy, która ma być uruchomiona – jeżeli utworzyłeś w swoim projekcie taką samą klasę jak ja w poprzednim rozdziale, to powinieneś wpisać com.kursjava.WitajIdea.

Ta minimalna konfiguracja wystarczy – kliknij na przycisk OK – okno zostanie zamknięte, a konfiguracja zapisana. Przycisk „Add Configuration...”, z którego wcześniej skorzystaliśmy, zmieni swój tytuł na „Uruchom WitajIdea” – jest to aktualnie wybrana (i jedyna) konfiguracja uruchomieniowa naszego projektu.

Możemy teraz uruchomić w IntelliJ IDEA nasz projekt. Aby to zrobić, kliknij na zieloną strzałkę, która znajduje się na prawo od używanego wcześniej przycisku „Add Configuration...” (który zmienił tytuł), lub skorzystaj ze skrótu klawiaturowego Shift + F10 (jest to zalecany przeze mnie sposób, bo jest dużo szybszy i wygodniejszy):

Lokalizacja przycisku do uruchamiania projektu
Lokalizacja przycisku do uruchamiania projektu

Po kliknięciu zaznaczonego przycisku lub użyciu skrótu klawiaturowego, po chwili nasz projekt zostanie uruchomiony. W wyniku jego działania, zobaczysz na ekranie komunikat Witaj IDEA!:

Wynik uruchomienia klasy WitajIdea
Wynik uruchomienia klasy WitajIdea

IDEA posiada wbudowaną linię poleceń, w której wypisuje wywoływane komendy i wynik działania naszego programu. W panelu, który pojawił się na dole okna, pierwsza linia to komenda uruchamiająca naszą klasę. Następnie widać efekt działania naszego programu – komunikat Witaj IDEA!. Nasz program nie miał nic więcej do zrobienia i zakończył działanie.

Możesz wybierać, edytować, i dodawać nowe konfiguracje, po kliknięciu na przycisk, który wcześniej miał tytuł „Add Configuration...”.

Szybkie uruchamianie klasy z metodą main

Jeżeli chcesz szybko uruchomić klasę, która posiada metodę main, bez konieczności tworzenia konfiguracji uruchomieniowej ręcznie, możesz kliknąć na jedną z dwóch zielonych strzałek, które pojawiają się na pasku po lewej stronie kodu źródłowego klasy, która zawiera metodę main:

Sposób na szybkie uruchamianie klasy z metodą main
Sposób na szybkie uruchamianie klasy z metodą main

Po kliknięciu na Run w menu, które się pojawi, IDEA automatycznie utworzy konfigurację uruchomieniową typu „Application”, z której będziesz mógł od tej pory korzystać, i uruchomi Twoją klasę.

Automatyczny import i pobieranie danych od użytkownika

Czasami programy, które piszemy, oczekują podania przez użytkownika pewnej wartości. Jeżeli taki program uruchomimy z poziomu linii poleceń, to będziemy mogli wpisać taką wartość i zatwierdzić ją Enterem.

Jeżeli taki program uruchomimy poprzez IntelliJ IDEA, także będziemy mogli podać oczekiwaną przez program wartość w oknie wykonania programu, które pojawia się, gdy program zostaje uruchomiony.

Dla przykładu, użyjemy klasy Scanner do pobrania przez użytkownika wartości, aby zobaczyć powyższe zagadnienie w akcji.

Dodaj poniższą metodę do klasy WitajIdea:

public static String getString() {
  return new Scanner(System.in).next();
}

Klasa Scanner znajduje się w pakiecie java.util, więc zanim będziemy mogli z niej skorzystać, musimy dodać odpowiedni import – IDEA zaznaczy, że klasa Scanner jest na razie nieznana (bo nie dodaliśmy jeszcze instrukcji import):

Podpowiedź, jaką IDEA wyświetla, gdy napotka niezaimportowaną klasę
Podpowiedź, jaką IDEA wyświetla, gdy napotka niezaimportowaną klasę

Zauważ, że IDEA zaznaczyła na czerwono nieznaną klasę. Ponadto, nazwa pliku na zakładce na górze okna została podkreślona czerwoną, falowaną linią, co świadczy o tym, że w tym pliku znajduje się niekompilowany kod źródłowy, który trzeba naprawić.

Dodatkowo, po prawej stronie okna widnieje znak wykrzyknika w czerwonym kole, świadczący o tym samym. Na suwaku do przewijania kodu w edytorze (po prawej stronie) zobaczysz poziomą, czerwoną kreskę, która określa lokalizację w pliku, gdzie znaleziono problem. Możesz najechać na nią kursorem myszy, aby zobaczyć opis problemu, lub kliknąć lewym przyciskiem myszy, aby przejść do miejsca w kodzie, gdzie ten problem występuje. Jest to przydatne w przypadku klas składających się z większej liczby linii niż nasza przykładowa klasa.

Poza wszystkimi opisanymi powyżej informacjami, IDEA wyświetla także niebieską ramkę nad nieznaną klasą, sugerując, z jakiego pakietu może ona pochodzić. Jeżeli przejdziesz w edytorze do miejsca, gdzie tak klasa się znajduje (lub klikniesz na jej nazwę lewym przyciskiem myszy), i użyjesz skrótu Alt + Enter, to IDEA automatycznie doda do Twojego kodu źródłowego instrukcję import. Po użyciu tego skrótu, zawartość pliku WitajIdea w moim edytorze wygląda następująco:

package com.kursjava;

import java.util.Scanner;

public class WitajIdea {
  public static void main(String[] args) {
    System.out.println("Witaj IDEA!");
  }

  public static String getString() {
    return new Scanner(System.in).next();
  }
}

Jeżeli klasa znajduje się więcej niż w jednym pakiecie, IDEA wskaże Ci je i pozwoli wybrać, z którego z nich chcesz zaimportować klasę.

Zauważ, że do kodu dodana została instrukcja:

import java.util.Scanner;

Dzięki temu, klasa kompiluje się bez problemów, a wszystkie opisane wcześniej wskazówki IDEI, że klasa WitajIdea zawiera problemy, zniknęły.

Skorzystamy teraz z metody getString do pobrania imienia użytkownika:

package com.kursjava;

import java.util.Scanner;

public class WitajIdea {
  public static void main(String[] args) {
    System.out.println("Podaj imie:");
    String imie = getString();
    System.out.println(String.format("Witaj %s!", imie));
  }

  public static String getString() {
    return new Scanner(System.in).next();
  }
}

Gdy uruchomisz teraz powyższy program (np. używając skrótu Shift + F10) za pomocą tej samej konfiguracji uruchomienia, którą przygotowaliśmy w poprzednim rozdziale, zobaczysz w panelu, który pojawi się na dole okna IDEI, komunikat „Podaj imie:”. Możesz kliknąć na ten panel, a następnie wpisać z klawiatury wartość, którą chcesz podać, i zatwierdzić ją Enterem:

Na zielono IDEA prezentuje wartość wpisaną przez użytkownika w trakcie działania programu
Na zielono IDEA prezentuje wartość wpisaną przez użytkownika w trakcie działania programu

Na zielono IDEA zaznacza tekst wprowadzany przez użytkownika w trakcie działania programu. Uruchomiony program czeka, aż podamy wartość. Po wpisaniu jej i zatwierdzeniu Enterem, wykonanie naszego programu jest kontynuowane.

Jeżeli chcesz przerwać wykonanie działającego programu, kliknij na czerwony kwadrat w prawym, górnym rogu IntelliJ IDEA (jest on wyszarzony, gdy Twój program nie jest uruchomiony – staje się on dostępny, gdy program jest w trakcie wykonywania) lub skorzystaj ze skrótu Ctrl + F2:

Lokalizacja przycisku do zatrzymywania programu
Lokalizacja przycisku do zatrzymywania programu

Argumenty programów

Za pomocą konfiguracji uruchomienia możemy ustawić argumenty, jakie chcemy przekazać do naszego programu – dostęp do nich będziemy mieli za pomocą parametru args metody main naszej klasy. Zmodyfikujemy klasę WitajIdea, aby sprawdzała, czy przekazany został do niej jakiś argument – jeżeli tak, to zamiast pobierać od użytkownika imię, użyjemy przekazanego argumentu:

package com.kursjava;

import java.util.Scanner;

public class WitajIdea {
  public static void main(String[] args) {
    String imie;

    if (args.length == 1) {
      imie = args[0];
    } else {
      System.out.println("Podaj imie:");
      imie = getString();
    }

    System.out.println(String.format("Witaj %s!", imie));
  }

  public static String getString() {
    return new Scanner(System.in).next();
  }
}

Aby ustawić argument, który program ma otrzymać, otwórz ponownie okno konfiguracji uruchomienia – kliknij na przycisk, który wcześniej miał etykietę „Add Configuration...”, która zmieniła się na nazwę konfiguracji uruchomienia, którą utworzyliśmy, a następnie kliknij „Edit Configurations...” na liście, która się pojawi:

Przycisk do edycji konfiguracji uruchomienia
Przycisk do edycji konfiguracji uruchomienia

W oknie konfiguracji, które się pojawi, możesz zmodyfikować utworzoną wcześniej konfigurację. Aby ustawić argumenty programu, wpisz je w polu „Program arguments”:

Pole, w którym możemy ustawić argumenty, które będą przekazane do programu
Pole, w którym możemy ustawić argumenty, które będą przekazane do programu

Możesz wpisać wiele argumentów oddzielonych od siebie spacją. Kliknij OK i uruchom program (skrót Shift + F10) – tym razem nie zostaniesz poproszony o podanie imienia – zamiast tego, użyty zostanie wpisany przez Ciebie argument, który przekazany został do naszego programu:

Witaj Bonifacy!

O przekazywaniu argumentów do programów Java napisałem także osobny artykuł.

Okna Terminal oraz TODO

IntelliJ IDEA posiada wbudowane okno linii poleceń, z którego możesz wykonywać różne komendy bez potrzeby uruchamiania właściwej linii poleceń systemu Windows.

Aby wyświetlić w IDEI panel z linią poleceń, użyj skrótu Lewy Alt + F12:

Linia poleceń zintegrowana w IDEA
Linia poleceń zintegrowana w IDEA

Ponowne użycie skrótu Lewy Alt + F12 zamknie panel z linią poleceń. Jeżeli chcesz przejść do edytora kodu bez zamykania tego panelu, naciśnij Escape.

W tym samym panelu znajduje się zakładka TODO. Aby ją otworzyć, użyj skrótu Alt + 6. Na tej zakładce znajduje się Twoja lista „rzeczy do zrobienia”, którą IntelliJ IDEA generuje na podstawie komentarzy w Twoim kodzie, które zawierają słowo TODO. Takie komentarze mają także inny kolor niż „zwykłe” komentarze, tzn. te, które nie zawierają słowa TODO (czego mój plugin do kolorowania składni kodu Java akurat nie obrazuje).

Dla przykładu, do metody main dodaj następujący komentarz:

public static void main(String[] args) {
  String imie;

  // TODO sprawdzic, czy nie ma wiecej argumentow
  if (args.length == 1) {
    imie = args[0];
  } else {
    System.out.println("Podaj imie:");
    imie = getString();
  }

  System.out.println(String.format("Witaj %s!", imie));
}

Gdy zajrzysz teraz do panelu TODO, zobaczysz, że znajduje się tam jeden wpis (musisz kliknąć na znaki trójkąta, aby rozwinąć listę):

Panel TODO wyświetlający jeden znaleziony w kodzie wpis
Panel TODO wyświetlający jeden znaleziony w kodzie wpis

Możesz kliknąć na wskazany plik lub konkretny wpis TODO w panelu, a IntelliJ IDEA przeniesie Cię automatycznie do miejsca w kodzie, gdzie dany wpis się znajduje.

Panel TODO przydaje się do szybkiego przeglądania miejsc w kodzie, w którym zaznaczyłeś sobie, że coś trzeba jeszcze dopisać lub poprawić.

Komentarze (2):

  1. Hej! bardzo Ci dziękuję za tak rozbudowany kurs Javy i Intellij, z którego korzystam. Byłam zupełnie zielona i próbowałam wielu kursów, ale dopiero Twój naprawdę pokazał mi krok po kroku co i jak zacząć programować w Javie. Obecnie korzystam z wersji Intellij 2021.2.2. i po wciśnięciu skrótu Alt + 6 wyskakuje okno problemów, nie lista TODO. Taka mała zmiana:)
    Jeszcze raz dziękuję z całego serca i pozdrawiam!

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Nie musisz podawać swojego imienia, e-mailu, ani strony www, aby opublikować komentarz. Komentarze muszą zostać zatwierdzone, aby były widoczne na stronie.