Programowanie współbieżne
Praca z Javą i IDE
Nie mamy wymagań dotyczących IDE, natomiast dla własnej wygody zdecydowanie warto jakiś mieć. Tu omawiamy VS Code, ale można też wybrać np. IntelliJ IDEA, NetBeans, Eclipse. Można pracować na komputerze w labach, na własnym, albo zdalnie przez SSH na students.
Instalacja na własnym komputerze
Windows & macOS
VS Code Coding Pack for Java zawiera spaczkowaną Javę razem z VS Code i wtyczkami. Inne IDE też mają instalator razem z Javą.
Linux
Instalacja Java'y:
- Ubuntu, Debian:
sudo apt install default-jre
- Fedora:
sudo dnf install java-latest-openjdk
java -version
pokazuje domyślnie używaną wersję. (W razie gdyby ktoś chciał zmienić domyślną wersję, można pod Ubuntu użyć narzędziasudo update-java-alternatives
, opcja-l
listuje zainstalowane,-s
pozwala zmienić; pod Fedorąsudo alternatives --config java
).
Instalacja VS Code: instrukcje stąd, po czym należy uruchomić i w lewym panelu wybrać wtyczki i zainstalować wtyczkę Extension Pack for Java.
Struktura projektu
Praca z Javą w IDE wymaga dość konkretnej struktury folderów w naszych projektach. Dla takich programików jak na zajęciach najprościej nie używać systemów budowania (maven, gradle, ant, ...), tylko same foldery i pliki źródłowe. Na przykład:
- folder
wspolbiegi/
który otwieramy w VS Code jako nasz workspace (File > Open Folder
lub z linii poleceńcode wspolbiegi/
) - w nim katalog
wspolbiegi/src/
(w VS Code możnasrc/
pominąć, w innych IDE niekoniecznie) - w nim podkatalog i plik
wspolbiegi/src/przyklady01/SingleThread.java
- w nim linijka
package przyklady01;
i definicja klasySingleThread
ze statyczną metodąmain
Ogólnie plik zawierający package foo.bar
powinien być w src/foo/bar/
.
Wtedy uruchamianie programów bezpośrednio z IDE powinno działać.
Z linii poleceń
Polecamy przyzwyczajać się do IDE, ale można też w terminalu:
- Uruchomić z kompilacją jednym poleceniem:
java przyklady01/SingleThread.java
(nie działa wtedy TAB-completion) - Osobno kompilacja
javac przyklady01/SingleThread.java
i wykonaniejava przyklady01.SingleThread
(dwa polecenia, ale działa TAB-completion).