Jak programować w Javie pod Linuksem?

Wszystkiego najlepszego w Nowym Roku!

Zdaję sobie sprawę, że od bardzo dawna nic się nie pojawiało na blogu. Jestem Ci winny przeprosiny i obietnicę poprawy! Na swoje usprawiedliwienie powiem, że Święta spędziłem u moich Teściów, Nowy Rok przywitałem z moimi Rodzicami. Czas spędzony u Teściów i Rodziców wykorzystałem na odwyk od komputera. Naprawdę polecam wszystkim wyjść ze świata wirtualnego i spędzić czas w rzeczywistości ze swoimi najbliższymi.

Chyba zabrzmiałem teraz jak starzec… Więc może darujmy sobie takie przydługie wstępy i przejdźmy do dzisiejszego tematu.

Jakiś czas temu napisałem krótki artykuł o tym, jak skonfigurować swoją maszynę z Windowsem 10, aby można było na niej swobodnie programować w Javie. Przed Świętami opublikowałem artykuł, w którym opisałem, jak można zainstalować Linuksa na maszynie wirtualnej. Dziś chciałbym kontynuować temat Linuksa na maszynie wirtualnej. Pokażę, jak łatwo przygotować tę maszynę, aby dało się na niej wygodnie programować w Javie.

Konsola Linuksa

Wpis Trochę linuksa w windowsie zacząłem od opisu instalacji programu Git SCM. Nie korzystaliśmy z podstawowej funkcjonalności tego programu – czyli z programu do zarządzaniem repozytorium plików (mam w planach napisanie artykułu poświęconemu Gitowi, daj znać w komentarzu, jeżeli chciałbyś o tym przeczytać jak najszybciej). Zainstalowaliśmy go po to, aby mieć namiastkę Linuksa w Windowsie. W Linuksie mamy to od samego początku – za darmo. Gdy uruchomisz swoją maszynę wirtualną (w momencie, na którym skończyłeś jej przygotowanie opisywane w artykule Przygoda z Linuksem), to terminal możesz uruchomić przez wybór czarnej ikonki w lewym dolnym rogu:

A gdy otworzysz główne menu systemu (Ikonka lm w samym lewym dolnym rogu) to ikona do uruchomienia terminala będzie jedną z najważniejszych widocznych w lewej części okna:

Gdy klikniesz w tą ikonkę lm w dolnym lewym rogu ekranu, to kursor pojawi się w pasku wyszukiwania w górnej części menu, wystarczy, że zaczniesz pisać Terminal, a będziesz mógł uruchomić ten program bez odrywania rąk od klawiatury (menu pojawia się po naciśnięciu klawisza z logiem Windowsa – podobnie jak menu start w systemach Windowsowych):

Niezależnie od sposobu, który wybierzesz pojawi Ci się takie okno:

Widok, który widzisz różni się trochę od tego, do czego być może zdążyłeś się już przyzwyczaić w programie Git SCM:

Ale główne części są takie same:

  • Jest znak dolara $, który bywa nazywany znakiem zachęty i wyznacza początek polecenia, które chcesz wykonać w terminalu
  • Jest nazwa użytkownika (w przypadku Linuksa jest to doktor, w Windowsie jest to pawel)
  • Jest nazwa komputera (w Linuksie jest to zielony-backlog, w Windowsie: DESKTOP-0BB9FUV)
  • Znak małpki @, który oddziela nazwę użytkownika od nazwy komputera
  • Wbrew pozorom w obu przypadkach jest też bieżące położenie w hierarchii katalogów na dysku, w Windowsie jest to / (czyli katalog główny), a w Linuksie jest to ~ (tylda – skrót do katalogu domowego użytkownika)

W Linuksie mamy dodatkowo dwukropek, który oddziela nazwę komputera od ścieżki, a w Windowsie mamy MINGW64. W obu przypadkach można dowolnie konfigurować wygląd terminala. Ale o tym może opowiem kiedy indziej.

Polecenia, o których pisałem w artykule Trochę linuksa w windowsie działają również w Linuksowym terminalu.

Kilka podstawowych komend na początek

Przeglądanie zawartości katalogów

Tak dla przypomnienia, komenda ls pokazuje zawartość bieżącego katalogu (a gdy dodamy przełącznik -l dostaniemy listę w charakterystycznej postaci, o której już pisałem)

Oczywiście możemy wylistować również dowolny inny katalog, bez przechodzenia do niego, na przykład:

Można też podejrzeć jakie są ukryte pliki w dowolnym katalogu, stosując przełącznik -a:

Tak jak już wspomniałem – w Linuksie plik (lub katalog) jest ukryty, gdy jego nazwa zaczyna się od . (kropki). Warto zwrócić uwagę na to, że katalogi podświetlają się na niebiesko. Dodatkowo warto zwrócić uwagę na dwa specjalne katalogi:

  • . – bieżący katalog
  • .. – katalog nadrzędny

Być może w tym widoku nie jest to specjalnie przydatna informacja. Ale gdy połączymy ze sobą dwa przełączniki -a oraz -l. Można je napisać osobno w dowolnej kolejności: ls -l -a lub łącznie (w sumie też w dowolnej kolejności): ls -la.

Teraz szybko możemy stwierdzić, kto jest właścicielem bieżącego katalogu i katalogu nadrzędnego oraz jakie prawa nam przysługują do katalogu bieżącego i nadrzędnego. O uprawnieniach w Linuksowych systemach napiszę osobny wpis (daj znać w komentarzach, jak bardzo Cię to interesuje!)

Wyświetlanie bieżącego położenia

O tej komendzie chyba wcześniej nie wspomniałem, ale może okazać się przydatna: pwd. Dzięki niej poznamy absolutną ścieżkę do aktualnego położenia:

Poruszanie się po drzewie katalogów

Tak jak już wspominałem w artykule Trochę linuksa w windowsie jest komenda cd, która pozwala nam przechodzić po drzewie katalogów. Używając ścieżki względnej:

Lub też ścieżki bezwzględnej:

Tak jak już pisałem, lub jak możesz się domyślić po tym co napisałem powyżej, komendą cd .. przechodzisz do katalogu nadrzędnego. Jest jeszcze jedno ciekawe zastosowanie komendy: cd - (z myślnikiem). Ta komenda wraca do katalogu, w którym byliśmy zaraz przed zmianą położenia.

Komenda echo i zmienna środowiskowa PATH

Warto wspomnieć o specjalnej komendzie echo, która służy do wyświetlania informacji na ekran.

Ta komenda bywa ogromnie przydatna przy pisaniu skryptów bash-owych. Bo chyba o tym nie wspomniałem – terminal bash pozwala na pisanie skryptów (czyli między innymi ciekawymi właściwościami posiada instrukcję warunkową i pętle), które niesamowicie usprawniają pracę z konsolą Linuksa. Ale o tych skryptach może opowiem innym razem.

Gdy nie piszemy skryptów, komenda echo może nam się przydać do poznawania zawartości zmiennych środowiskowych. O zmiennych środowiskowych wspominaliśmy przy okazji instrukcji instalacji Javy na komputerze z Windowsem 10. Wtedy wspomniałem o zmiennej PATH, która zawiera listę katalogów, które są przeszukiwane przy wywoływaniu komendy w celu znalezienia odpowiedniego pliku wykonywalnego. W Linuksie zmienna nazywa się PATH – wielkość liter ma znaczenia (w przeciwieństwie do Windowsa). Jeżeli chcemy się odnieść do wartości zmiennej musimy użyć znaku $ (dolara):

Jeżeli chcemy dodać jakiś katalog do zmiennej PATH, robimy to przez przypisanie do tej zmiennej nowej wartości:

Zwróć uwagę, że przypisanie wartości odbywa się przez znak = (równa się) i nie może się tam zakraść żaden biały znak. Oczywiście taka zmienna będzie widoczna tylko w tej konsoli. Jeżeli chcemy taką wartość utrwalić (żeby była widoczna przy kolejnych uruchomieniach terminala), musimy dopisać odpowiednią linijkę do pliku ukrytego bashrc, który znajduje się w naszym katalogu domowym. Do edycji tego pliku możemy wykorzystać domyślny edytor tekstowy systemu Mint – aby go uruchomić możemy wykorzystać komendę xed.

Zwykle używam edytora vim, ale zdaję sobie sprawę, że nie każdy go zna. Znam też sporo osób, które znają ten edytor, ale nie przepadają za jego używaniem. O edytorze vim postaram się napisać osobny wpis w najbliższym czasie. Dopisałem linijkę:

która zaczyna się od słowa export. To słowo oznacza, że nowa wartość zmiennej PATH będzie dostępna w każdym kolejnym procesie konsoli bash (ma to znaczenie, gdy będą tworzone konsole potomne).

Uzyskiwanie pomocy

Terminal Linuksa jest bardzo prosty w użyciu! Może na początku wydaje się skomplikowany, ale to wrażenie szybko mija. Nie musisz znać na pamięć wszystkich przełączników poszczególnych komend. Te zawsze możesz uzyskać z samego systemu. Większość poleceń, ma przełącznik -h lub --help:

To polecenie wypisze całą treść pomocy na ekran – będzie potrzebna myszka, aby przeczytać je w całości. Dla zdecydowanej większości komend, jest zdefiniowany systemowy plik pomocy. Ten plik pomocy można uzyskać komendą man (na przykład man ls):

Teraz konsola przeszła w specjalny tryb (a tak naprawdę został uruchomiony dodatkowy program, ale o tym może opowiem kiedy indziej) – możemy używać strzałek aby przeglądać plik w górę i w dół, możemy też spacją przejść do kolejnej strony. Aby wrócić do konsoli użyj klawisza q (tak jak podaje napis na samym dole okienka).

Tabulator Twoim przyjacielem jest

Mam wrażenie, że bardzo wiele tutoriali zapomina o bardzo ważnej podpowiedzi. Klawisz Tab podpowiada to, co możemy wpisać w konsolę – komendę, którą chcemy wywołać czy też ścieżkę do pliku, którą chcemy przekazać do programu. Gdy korzystam z konsoli to klawisz tabulacji jest tym, którego używam najczęściej. Niestety ciężko to pokazać na statycznym zrzucie ekranu, więc zachęcam do samodzielnej zabawy z tabulacją!

Jest jeszcze jedna rzecz, o której warto w tym momencie wspomnieć. Możesz wywołać komendę, którą już wcześniej wykonałeś. To znaczy, jak naciśniesz klawisz strzałki do góry, to możesz cofać się w historii poleceń, które wykonywałeś w terminalu (jeżeli cofnąłeś się za daleko możesz użyć strzałki w dół).

Dodatkowo w każdej chwili możesz nacisnąć kombinację klawiszy Ctrl + c, która przerywa aktualnie wykonywane polecenie. Jeżeli żadne polecenie się nie wykonuje to czyści aktualne wprowadzane polecenie i przechodzi do czystego znaku zachęty.

Jak już jesteśmy przy przydatnych skrótach klawiszowych, to nie mogę pominąć kombinacji Ctrl + d, która kończy wprowadzanie danych i/lub zamyka aktualnie otwartą konsolę.

Instalacja oprogramowania na Linuksie

Mój krótki wstęp za bardzo się rozrósł… Ale mam nadzieję, że jeszcze jesteś ze mną i chcesz dojść do sedna – przygotowania systemu Linux do programowania. Jak już przypomnieliśmy sobie kilka podstawowych informacji na temat konsoli Linuksa, to możemy przejść do instalacji dodatkowego oprogramowania.

Ale zanim zaczniemy cokolwiek instalować, warto napisać kilka słów o zarządzaniu oprogramowaniem w Linuksach.

Każda dystrybucja posiada swój własny mechanizm instalowania i zarządzania dodatkowym oprogramowaniem. W dystrybucjach, które opierają się na Debianie jest program apt, który pozwala dodawać, aktualizować i usuwać programy. Oprogramowanie jest udostępniane w paczkach (nazywanych pakietami). Takie paczki zawierają już skompilowane oprogramowanie, które program apt umieszcza we właściwym położeniu w drzewku katalogów. Program apt dodatkowo tworzy wszelkie potrzebne katalogi, pliki konfiguracyjne, modyfikuje zmienne środowiskowe, jak również odpowiada za właściwe poinformowanie systemu operacyjnego o dodawanym oprogramowaniu. Jest to duże ułatwienie względem tego, co było w początkach funkcjonowania komputerów, gdzie oprogramowanie należało pobrać w formie kodu źródłowego, następnie trzeba było je skompilować lokalnie i we własnym zakresie umieścić je we właściwym miejscu naszego systemu operacyjnego (wciąż zdarza się taka potrzeba, ale nie będziesz do tego zmuszany w najbliższym czasie).

Skąd program apt bierze pakiety? Oczywiście z Internetu. W Internecie jest szereg serwerów, które zawierają pakiety gotowe do pobrania i zainstalowania. A my, przy okazji instalacji Minta na maszynie wirtualnej, wskazaliśmy najszybsze dostępne serwery.

Na początek możemy zajrzeć do pliku pomocy systemowej polecenia apt (wywołując polecenie man apt):

Bez dalszego przeglądania tego pliku widzimy najważniejsze komendy dostępne w programie apt. Zacznijmy od zaktualizowania naszych lokalnych danych, czyli od komendy apt update:

Widzimy, że konsola prosi nas o hasło użytkownika. Wynika to z tego, że tylko administrator komputera może zarządzać oprogramowaniem. Muszę przyznać, że zademonstrowane tutaj zachowanie Minta jest dla mnie nowością. W starszych wersjach trzeba było podkreślić, że komendę chcemy wywołać jako administrator przez użycie programu sudo:

W wyjściu wygenerowanym przez program apt widzimy, z jakimi serwerami łączył się komputer i ile z aktualnie zainstalowanych pakietów posiada nowsze wersje. Możemy zaktualizować te pakiety wywołując polecenie sudo apt upgrade:

Program apt wylistuje jakie nowe pakiety zostaną zainstalowane oraz jakie pakiety zostaną zaktualizowane. Pokaże nam informacje jak wiele danych zostanie pobranych z Internetu i jak wiele miejsca na dysku zostanie zajęte. My musimy się na to zgodzić przez pisanie litery t i naciśnięcie Enter. Pobranie i instalowanie pakietów chwilę potrwa. Ale dzięki temu nasz system będzie w pełni aktualny.

Java (pakiet JDK) oraz Maven są programami, dla których pakiety są dostępne dla menadżerów pakietów w większości dystrybucji Linuksa. I tutaj tabulacja naszym przyjacielem będzie (nie pamiętam jak się nazywa pakiet z Javą). Wystarczy wpisać sudo apt install openjdk- i nacisnąć tabulator:

W związku z tym, że chcemy zainstalować najnowszą dostępną wersję Javy kończymy komendę:

Akceptujemy pakiety, które mają być zainstalowane i po chwili możemy korzystać z zainstalowanej Javy.

Bardzo podobnie instalujemy Mavena:

I już po chwili możemy korzystać z zainstalowanego oprogramowania:

Nakładka graficzna na apt

Jeżeli należysz do osób, które nienawidzą terminala, to mam dla Ciebie dobrą wiadomość. Istnieje graficzna nakładka na program apt. Nazywa się Synaptic i jest domyślnie zainstalowana w Mincie, z którego korzystamy:

Aby z niego skorzystać musimy podać hasło administratora

Przy pierwszym uruchomieniu pojawi się okienko z informacją o pakietach:

Jak zamkniemy okienko z informacją, to zobaczymy ekran aplikacji Synaptic:

Siłą rzeczy jego funkcjonalność jest ograniczona do tego, co oferuje program apt.

Instalacja pakietu spoza repozytorium

Czasami może się zdarzyć tak, że jakiegoś oprogramowania nie znajdziemy w repozytorium pakietów. Wtedy możemy zaryzykować pobranie pakietu samodzielne i zainstalowanie go z zewnątrz. Przykładem takiego oprogramowania jest Steam – tak są gry na Steam’ie które da się uruchomić na komputerach z Linuksem. Klient programu Steam da się zainstalować również w inny sposób, do którego przejdę za chwilę. Otwieramy stronę startową usługi Steam:

W prawym górnym rogu widać ikonę do zainstalowania Steama. Po jej kliknięciu zobaczymy:

Teraz możemy już pobrać plik instalacyjny:

Pobrał się plik instalacyjny z rozszerzeniem deb. Jest to najzwyklejszy pakiet programu apt. Można go dwukrotnie kliknąć myszką:

Ale my go zainstalujemy wykorzystując terminal:

Po instalacji mamy w naszym głównym menu nową pozycję:

Czasami program możemy pobrać w postaci skryptu sh lub run. O ile dobrze pamiętam, takiej formie był swego czasu dystrybuowany program Maple oraz Mathematica. W tej formie instalowałem kiedyś specjalny sterownik do kart graficznych Nvidia, aby wykorzystać możliwości programowania na CUDA. Ale to jest na tyle ciekawy temat, że jeszcze do niego wrócę w przyszłości.

Jeszcze w innej formie jest dystrybuowany IntelliJ – czyli program, który rekomenduję do pisania swoich programów w Javie. Wejdźmy na stronę firmy JetBrains:

Klikamy myszą w link Developer Tools:

Wybieramy IntelliJ IDEA:

Klikamy w duży przycisk Download:

I wybieramy wersję Community (dla naszych początkowych celów jest to wystarczający wybór). Po dłuższej chwili pobierze się nam archiwum tar.gz. W środku jest gotowy do uruchomienia program. Przy pierwszym uruchomieniu będziemy mogli dodać kilka dodatkowych rzeczy. Ale po kolei. Najpierw rozpakujemy archiwum (oczywiście przy wykorzystaniu terminala). Wykorzystamy komendę tar:

Co oznaczają poszczególne opcje?

-x, --extract, --get
       ekstrakcja plików z archiwum
-f, --file [NAZWAHOSTA:]F
       używa podanego pliku z archiwum lub urządzenia F (domyślnie "-",
       co oznacza standardowe wejście/standardowe wyjście)
-z, --gzip, --ungzip
       kompresja/dekompresja archiwum programem gzip

Można jeszcze dodać opcję -v:

-v, --verbose
       wypisywanie nazw wszystkich plików

Mamy katalog idea-IC-203.6682.168. Możemy go pozostawić w tej lokalizacji. Nie jestem zwolennikiem tej metody. Sugeruję zrobić u siebie w katalogu domowym katalog Programy i tam przenieść ten katalog. Jeszcze lepszym rozwiązaniem (szczególnie, gdy z tego programu będzie korzystać więcej niż jeden użytkownik systemu) jest przeniesienie tego katalogu do katalogu /opt.

Do przeniesienia katalogu (lub pliku) możemy wykorzystać komendę mv:

W naszym wypadku będzie to:

Widzimy, że nie mamy wystarczających uprawnień do wykonania takiej operacji. Ale możemy je uzyskać przez użycie komendy sudo:

No to teraz pozostało nam tylko uruchomić program wykorzystując skrypt w rozpakowanym katalogu:

Po wywołaniu tej komendy pojawi się okienko:

Oczywiście nie musisz akceptować licencji użytkownika – wtedy nie będziesz mógł korzystać z tego oprogramowania. Firma JetBrains chce zbierać anonimowe dane o użytkowaniu z ich oprogramowania.

Oczywiście Ty zrobisz jak zechcesz, ale ja nie lubię wysyłać takich danych. Po chwili pokaże się okienko główne programu IntelliJ:

Jestem trochę rozczarowany, ponieważ w starszych wersjach w czasie pierwszego uruchomienia była dodawana pozycja w głównym Menu systemu. To sprawiało że można było szybko i bezproblemowo uruchomić ten program.

Krótkie poszukiwania w Internecie naprowadziły mnie na to, że IntelliJ może być zainstalowany przez program apt. Najpierw usuniemy te pliki, które są nam zbędne. Do tego można użyć komendy rm:

Opcja -r służy do rekursywnego usunięcia katalogu.

Najpierw dodamy dodatkowe repozytorium dla programu apt:

$ sudo add-apt-repository ppa:mmk2410/intellij-idea

Następnie odświeżymy nasze lokalne dane o repozytoriach (w szczególności pobierzemy informacje o nowo dodanym repozytorium):

sudo apt update

A na samym końcu zainstalujemy IntelliJ:

sudo apt install intellij-idea-community

Po chwili aplikacja jest zainstalowana i możemy ją uruchomić korzystając z głównego systemowego menu:

No i uruchomi się dokładnie takie samo okno aplikacji jak wcześniej:

Podsumowanie

Mamy więc środowisko gotowe do programowania w Javie. Już mentalnie się przygotowuję do stworzenia kilku początkowych lekcji przeznaczonych dla zupełnych nowicjuszy w programowaniu.

Podsumujmy ten artykuł. Nauczyliśmy się dziś kilku komend powłoki Linuksa oraz nauczyliśmy się o instalacji nowego oprogramowania i wykorzystaliśmy tę wiedzę do przygotowania naszej maszyny wirtualnej do programowania w Javie.

Dziękuję, że dotarłeś ze mną do końca tego artykułu. Jeszcze raz Cię przepraszam za długie milczenie i obiecuję, że teraz artykuły będą się pojawiać regularnie i ich tematyka będzie bardziej zróżnicowana. Zachęcam do komentowania i kontaktu przez moje media społecznościowe.

Bonus

Aby wyczerpać do końca temat instalacji oprogramowania w systemie Linux Mint chciałbym dodać, że istnieje program podobny do Microsoft Store w Windowsie 10, który pozwala nam w wygodny sposób przeglądać oprogramowanie do zainstalowania. Nazywa się on Menadżer oprogramowania i łatwo go znaleźć w oknie głównego Menu systemu:

Po jego uruchomieniu możemy przeglądać aplikacje podzielone na kategorie. Jest kilka programów polecanych:

Program ten pozwala zainstalować dodatkowe oprogramowanie jednym kliknięciem myszy. Weźmy na przykład program Calibre – jest to niesamowity program do zarządzania Twoim zasobem książek elektronicznych. Z całego serca polecam. Poza tym, widzisz, że właśnie tu można łatwo zainstalować aplikację kliencką do Steama.

Po wyborze Calibre pojawia się okienko z opisem aplikacji:

I wyraźnym przyciskiem Instaluj. Po jego kliknięciu system zapyta nas o hasło administratora

Po podaniu hasła Menadżer oprogramowania zacznie proces instalacji. Tak, że po chwili nowy program będzie widoczny w głównym Menu systemu operacyjnego.

I to już naprawdę koniec tego artykułu.

Jeszcze raz dziękuję za uwagę. Kolejne artykuły już wkrótce.

Aspirujący twórca internetowy, który zna się na programowaniu i chce się dzielić wiedzą

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Scroll to top