# Instalacja Java

<p class="callout warning">Ancestris wymaga Javy i jest kompatybilny z wersjami Java od 8 do 21.</p>

<p class="callout info">**Jeśli Ancestris się nie uruchamia albo pokazuje ekran powitalny i się zatrzymuje, najczęściej jest to związane z problemem z instalacją Javy. Może to oznaczać, że Java nie jest zainstalowana, Ancestris jej nie znajduje, znajduje niekompatybilną wersję lub uszkodzoną instalację.**</p>

<p class="callout success">Poniższe sekcje zawierają instrukcje krok po kroku, które pozwolą upewnić się, że Ancestris korzysta z prawidłowej wersji Javy.</p>

## Zasada ogólna

- **Ancestris działa ze wszystkimi wersjami Javy wymienionymi na górze tej strony.**
    - Ancestris jest kompilowany z użyciem wersji 8 dla lepszej kompatybilności z większością użytkowników.
    - Ancestris był testowany z kilkoma wersjami typu LTS (Long Term Support – długoterminowe wsparcie).
    - Nie testujemy systematycznie Ancestris z wersjami krótkoterminowymi (Short Term), ponieważ szybko stają się przestarzałe i nie można ich pobrać po 18 miesiącach, ale niektórzy użytkownicy regularnie potwierdzają, że Ancestris działa poprawnie ze wszystkimi wersjami Javy.
- Jeśli na Twoim systemie jest dostępna działająca wersja Javy, **Ancestris ją znajdzie bez konieczności jakiejkolwiek konfiguracji**.
- W przeciwnym razie możesz [zainstalować Javę](https://docs.ancestris.org/link/902#bkmrk-install-java) od dowolnego dostawcy. Użytkownicy najczęściej wybierają pobranie jej z [Adoptium](https://adoptium.net/), ponieważ jest to najłatwiejsze.
- Aby sprawdzić, czy Java jest zainstalowana w Twoim systemie, wykonaj [te instrukcje](https://docs.ancestris.org/link/902#bkmrk-identify-which-java-).
- Jeśli Ancestris nie uruchamia się mimo zainstalowanej Javy, sprawdź sekcję [Rozwiązywanie problemów](https://docs.ancestris.org/link/902#bkmrk-troubleshooting)
- Możesz mieć zainstalowanych kilka wersji Javy na swoim systemie. Aby wskazać Ancestris, której wersji ma używać, musisz:  
    
    - albo zaktualizować plik konfiguracyjny Ancestris. W tym celu postępuj według [tych instrukcji](https://docs.ancestris.org/link/902#bkmrk-identify-which-java--0).
    - albo zmienić domyślną wersję Javy. W tym celu postępuj według [tych instrukcji](https://docs.ancestris.org/link/902#bkmrk-using-several-java-v).

## Instalacja Java

<p class="callout info">Prostym sposobem na uzyskanie oficjalnej wersji Javy jest pobranie jej ze strony [Adoptium.net](https://adoptium.net)</p>

Jeśli Java nie jest zainstalowana lub jeśli chcesz najnowszą albo konkretną wersję Javy, po prostu pobierz ją ze wspomnianej wyżej strony.

## Zidentyfikuj, czy Java jest już zainstalowana:

Jeśli nie wiesz, czy Java jest zainstalowana, ani która wersja jest zainstalowana, otwórz terminal wiersza poleceń i wpisz polecenie:

```
java -version
```

- **Jeśli zobaczysz komunikat o błędzie** w terminalu, oznacza to, że Java nie jest zainstalowana na Twoim systemie. Ancestris nie może działać. Proszę postępować zgodnie z [sekcją instalacji](https://docs.ancestris.org/link/902#bkmrk-install-java) powyżej, aby zainstalować Javę.
- **Jeśli zobaczysz coś takiego, jak poniżej, gdzie wyświetlana jest wersja Javy**, oznacza to, że Java jest zainstalowana z wskazaną wersją. Możesz mieć zainstalowane kilka wersji, ale ta wersja będzie tą, którą Ancestris znajdzie, chyba że skonfigurowałeś Ancestris, aby działało inaczej.

```
java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)
```

Zgodnie z powyższym wyświetlaniem, możemy zobaczyć, że zainstalowana wersja Javy ustawiona domyślnie to wersja 1.8, czyli wersja 8.

<p class="callout success">Jeśli masz zainstalowaną wersję Javy, jak w przykładzie powyżej, i chcesz jej używać, możesz zignorować resztę tej strony.</p>

## Rozwiązywanie problemów

Jeśli Java jest zainstalowana, a Ancestris się nie uruchamia, oznacza to, że Ancestris nie może znaleźć Javy, znalazł niekompatybilną wersję lub wersja jest uszkodzona.

Niezależnie od tego, czy masz zainstalowaną tylko jedną wersję Javy, czy kilka, będziesz musiał [sprawdzić i ewentualnie zaktualizować plik konfiguracyjny](https://docs.ancestris.org/link/902#bkmrk-identify-which-java--0), aby wskazać Ancestris, gdzie szukać Javy.

Zamiast zmieniać plik konfiguracyjny Ancestris, jeśli masz zainstalowane kilka wersji Javy, alternatywnie możesz [zmienić domyślną wersję Javy](https://docs.ancestris.org/link/902#bkmrk-using-several-java-v) na swoim systemie.

- Domyślna wersja Javy to ta, która pojawia się po wpisaniu komendy `java -version`, jak pokazano w poprzedniej sekcji. Jest to wersja, której Ancestris użyje, jeśli plik konfiguracyjny Ancestris nie istnieje lub nie zawiera instrukcji wskazującej, gdzie znaleźć Javę.

##### W razie wątpliwości, proszę uruchomić Ancestris ręcznie z okna terminala i wysłać nam odpowiedź (log), która pojawi się na ekranie.

- Bez względu na system operacyjny, który używasz, otwórz okno terminala.
- Przejdź do katalogu aplikacji, który nazywa się `ancestris/bin`
- Uruchom Ancestris ręcznie, wpisując:  
    
    - `./ancestris` na macOS lub Linux,
    - `ancestris.exe` lub `ancestris64.exe` na Windows
- Okno terminala wyświetli, co się dzieje.
- Prześlij nam wyświetlaną odpowiedź (log).

## Aktualizacja pliku konfiguracyjnego Ancestris 

<p class="callout info">Musisz się tym zająć tylko wtedy, gdy Java jest zainstalowana, ale Ancestris nie uruchamia się.</p>

Musisz zaktualizować [plik konfiguracyjny Ancestris](https://docs.ancestris.org/books/podrecznik-uzytkownika/page/pliki-oprogramowania-i-pliki-ustawien-uzytkownika "Pliki oprogramowania i pliki ustawień użytkownika"), aby wskazać, gdzie Ancestris powinien szukać Javy, jeśli aplikacja nie może jej znaleźć.

Zasada jest następująca:

- Jeśli istnieje plik konfiguracyjny, który zawiera parametr `jdkhome` wskazujący, gdzie znaleźć Javę, Ancestris użyje odpowiedniej wersji Javy.
    
    W przeciwnym razie Ancestris użyje domyślnej wersji Javy, wskazanej w poprzedniej sekcji.

<p class="callout danger">{{@904#bkmrk-ancestris-uses-two-c}}</p>

Sprawdź [tutaj](https://docs.ancestris.org/books/podrecznik-uzytkownika/page/pliki-oprogramowania-i-pliki-ustawien-uzytkownika "Pliki oprogramowania i pliki ustawień użytkownika"), gdzie znajduje się plik konfiguracyjny w zależności od twojego systemu.

### Ścieżka do Javy w pliku konfiguracyjnym

Otwórz plik konfiguracyjny za pomocą zwykłego edytora tekstu.

**1. Sprawdź linię definiującą `default_options`**

Linia ta powinna wyglądać następująco:

`default_options="--branding ancestris -J-Xms96m -J-Xmx1g --laf javax.swing.plaf.nimbus.NimbusLookAndFeel"`

Jeśli jedna z opcji w tej linii zawiera `--jdkhome="/path/to/java`, upewnij się, że ścieżka określona w tej opcji wskazuje na wersję Javy, którą chcesz używać.

Jeśli ta linia nie zawiera ścieżki do Javy, spróbuj znaleźć opcję jdkhome w innym miejscu.

**2. Sprawdź linię definiującą `jdkhome`**

Jeśli linia wygląda jak `jdkhome="/path/to/java"`, upewnij się, że ścieżka wskazuje na wersję Javy, którą chcesz używać.

Jeśli linia zaczyna się od "#", to jest to komentarz, który Ancestris zignoruje, jakby go nie było.

Jeśli Ancestris się nie uruchamia, może to oznaczać, że nazwa folderu jdkhome jest źle napisana lub wskazuje na nieprawidłową wersję Javy.

Bez względu na system operacyjny, jeśli domyślna aktywna wersja Javy różni się od tej, która ma być używana z Ancestris, należy zmodyfikować linię jdkhome w ten sposób:

```
jdkhome="/path/to/java"
```

### Przypadek macOS

Dla macOS, jeśli na przykład Java 21 i Java 17 są zainstalowane na twoim Macu, a chcesz wymusić użycie Java 17 dla Ancestris, pełna operacja, aby wymusić wersję Javy, wyglądałaby następująco:

- <div>**Edytuj plik konfiguracji użytkownika Ancestris, jeśli istnieje:**</div>
    - Plik znajduje się w `/Users/<yourname>/Library/Application Support/ancestris/<version or trunk>/etc/ancestris.conf`.
    - Zastąp &lt;your name&gt; nazwą, której używasz na Macu.
    - Zastąp &lt;version or trunk&gt; numerem wersji Ancestris, którego używasz: obecna stabilna i oficjalna wersja to numer, na przykład 11; wersja dzienna to 'trunk'.
    - Aby zobaczyć folder Library w Finderze, musisz nacisnąć Command+J. Jest domyślnie ukryty.
- <div>**Jeśli plik konfiguracji użytkownika nie istnieje**, ponieważ nigdy wcześniej nie używałeś Ancestris, edytuj plik konfiguracji aplikacji Ancestris (jeśli to pierwsza instalacja):  
    `/Applications/Ancestris.app/Contents/Resources/ancestris/etc/ancestris.conf`</div>
- <div>**Znajdź linię** `#jdkhome="/path/to/java"` i usuń początkowy znak # w celu odkomentowania linii, aby Ancestris ją uwzględniło.</div>
- **Zastąp wartość ścieżką do Javy, którą chcesz używać**, na przykład temurin-17, aby linia wyglądała następująco:

```
jdkhome="/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home"
```

- Zapisz zmodyfikowany plik ancestris.conf i upewnij się, że został zapisany poprawnie.  
    Uruchom ponownie Ancestris.

### Przypadek Windows i Linux

Możesz użyć polecenia `echo %JAVA_HOME%` aby sprawdzić gdzie zainstalowana jest Java.

Dla systemu Windows lub Linux, na przykład, jeśli plik wykonywalny Java znajduje się w lokalizacji /usr/java/jdk1.8.0\_291-amd64/bin/java, należy pisać:

```
jdkhome="/usr/java/jdk1.8.0_291-amd64/"
```

Uwaga: należy wykluczyć bin/java w opisie ścieżki.

## Zmienianie domyślnych wersji Javy, gdy zainstalowane są różne wersje

Jeśli na twoim systemie zainstalowane są różne wersje Javy i chcesz zmienić wersję, którą będzie używać Ancestris, procedura zmiany zależy od twojego systemu operacyjnego.

- [na macOS](https://docs.ancestris.org/link/902#bkmrk-set-the-default-java "Choosing java version for MacOS")
- [na Windows](https://docs.ancestris.org/link/902#bkmrk-swaping-java-version-0 "Choosing java version for Windows")
- [na Linux](https://docs.ancestris.org/link/902#bkmrk-swaping-java-version-1 "Choosing java version for Linux")

### Zamiana domyślnej wersji na macOS

Aby przełączyć między różnymi wersjami Java, otwórz okno terminala i postępuj zgodnie z poniższymi krokami.

W poniższym przykładzie instrukcje pozwolą ustawić wersję 8 (aka 1.8) jako domyślną, bez usuwania wersji Java 10:

**1/6 - Sprawdź, która wersja Java jest ustawiona jako domyślna.**

```
java -version
echo $jdkhome
```

Możesz sprawdzić, jaką wersję Javy aktualnie używasz.

**2/6 - Uzyskaj listę wszystkich zainstalowanych wersji na swoim systemie i sprawdź, czy wersja 8 lub 11 jest jedną z nich.**

```
/usr/libexec/java_home -V
```

Jeśli wersja, którą chcesz, nie znajduje się na liście, zainstaluj ją, jak wyjaśniono w tej sekcji.

Jeśli jest na liście, ale nie jest tą, która jest wymieniona wcześniej, wymuś ścieżkę do wersji Java za pomocą poniższego kroku.

**3/6 - Wpisz poniższe 2 linie w Terminalu.**

```
echo 'export JAVA_HOME=`/usr/libexec/java_home -v 1.8`' >>~/.bash_profile
echo 'export jdkhome==`/usr/libexec/java_home -v 1.8`' >>~/.bash_profile
```

Te dwie linie dodadzą polecenie ustawiające domyślną wersję Java w Twoim osobistym profilu. Tutaj wymuszamy wersję 1.8 (lub 8). Zastąp ją swoją wersją Java.

Pierwsza linia definiuje domyślną wersję Java dla wszystkich programów (JAVA\_HOME, wielkimi literami).

Druga linia definiuje domyślną wersję Java do użycia w Ancestris (jdkhome, małymi literami).

**4/6 - Zamknij Terminal**

```
exit
```

**5/6 - Otwórz ponownie Terminal i sprawdź, czy uruchomiona wersja Java to teraz ta, którą chcesz (wersja 8 w naszym przykładzie).**

```
java -version
echo $jdkhome
```

Teraz możesz uruchomić Ancestris.

**6/6 - Uruchom Ancestris**

Kiedy Ancestris się uruchomi, jednocześnie otworzy się okno Terminala.

Będziesz mógł zobaczyć w pasku tytułowym, że wersja 8 Java jest używana przez Ancestris.

### Zamiana domyślnej wersji na Windows

Musisz utworzyć plik BAT dla każdej wersji Java, którą chcesz zachować.

Użyj swojego ulubionego edytora tekstu, aby stworzyć te pliki, używając poniższego kodu, a następnie umieść je w folderze dostępnym w zmiennej PATH.

**JAVA8.BAT**

```
@echo off
echo Setting JAVA_HOME
set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_12
echo setting PATH
set PATH=C:\Program Files\Java\jdk1.8.0_12\bin;%PATH%
echo Display java version
java -version
```

**JAVA11.BAT**

```
@echo off
echo Setting JAVA_HOME
set JAVA_HOME=C:\Program Files\Java\jdk1.11.0_11
echo setting PATH
set PATH=C:\Program Files\Java\jdk1.11.0_11\bin;%PATH%
echo Display java version
java -version
```

Podczas tworzenia tych plików upewnij się, że określiłeś poprawną nazwę plików Java w liniach JAVA\_HOME, w zależności od zainstalowanej wersji Java.

Kiedy zdecydujesz się zmienić wersję Java, wystarczy uruchomić odpowiedni plik BAT: JAVA8 dla wersji 1.8 lub JAVA11 dla wersji 11. Wersja Java, która jest używana, zostanie wyświetlona w terminalu.

Aby sprawdzić, czy zmiana została zastosowana, wpisz `java -version` w konsoli lub sprawdź tę stronę.

### Zmień domyślną wersję dla systemu Linux

Wpisz poniższe polecenie w konsoli:

```
sudo update-alternatives --config java
```

[![en_linux-java-versions.png](https://docs.ancestris.org/uploads/images/gallery/2020-05/scaled-1680-/en_linux-java-versions.png)](https://docs.ancestris.org/uploads/images/gallery/2020-05/en_linux-java-versions.png)

Wybierz z listy potrzebną wersję.

Aby uzyskać pomoc przy używaniu tego narzędzia:

```
sudo update-alternatives -l
```