Uruchamiam i nie działa – problem z javą

Może się zdarzyć tak, że nie masz zainstalowanej, bądź widocznej na poziomie systemu instalacji środowiska uruchomieniowego Java. Jeśli po uruchomieniu polecenia otrzymałeś taki błąd


C:\Projects\jaktestowacDemoTests>libs\allure-2.7.0\bin\allure serve ./results

ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.

Wykonaj wszystkie poniższe kroki a raport będzie twój 😉

TIP: Może się zdarzyć , że twój błąd jest inny niż dwa standardowe omówione w tej i poprzedniej lekcji (brak skonfigurowanego środowiska uruchomieniowego Java bądź inna wersja allure). Spokojnie przeanalizuj informację błędu i jeśli nie wpadniesz na rozwiązanie to śmiało do nas pisz i z pewnością pomożemy!
  1. Patrząc na opis błędu widzimy, że jakiś JAVA_HOME nie jest ustawiony i musimy to naprawić.
    Z doświadczenia wiemy, że problem jest związany z brakiem zainstalowanego środowiska do uruchamiania programów napisanych w języku Java.
  2. Na szczęście mamy na to tajny sposób. Generalnie należałoby wykonać pełną instalację środowiska uruchomieniowego Java, ale akurat PyCharm posiada oraz korzysta z takiej wbudowanej wersji tego środowiska. Gdy przejdziemy do katalogu, w którym zainstalowaliśmy IDE PyCharm, czyli np. C:\Program Files\JetBrains\PyCharm Community Edition 2018.1.3, odnajdziemy folder nazywający się jre64. W środku znajdują się wszystkie niezbędne pliki aby uruchomić program potrzebujący środowiska uruchomieniowego dla Javy. Kopiujemy więc całą ścieżkę do katalogu bin: C:\Program Files\JetBrains\PyCharm Community Edition 2018.1.3\jre64
    UWAGA: W nowszych wersjach IDE PyCharm katalog bin może znajdować się w:
    C:\Program Files\JetBrains\PyCharm Community Edition 2019.3.3\jbr
  3. Uruchamiamy konsolę, ale nie w zwykłym trybie, a w trybie administratora. Potrzebujemy tego, gdyż będziemy ustawiać regułę dla naszego systemu Windows.
    Klikamy w przycisk Windows potem wpisujemy cmd, następnie klikamy prawym klawiszem myszki na znaleziony program Command Prompt i wybieramy opcję Run as administrator. Akceptujemy okno z zapytaniem czy o uruchomienie programu w tym trybie. I jesteśmy gotowi na kolejne czary.
  4. Wpisujemy takie oto polecenie w oknie konsoli
    setx -m JAVA_HOME "C:\Program Files\JetBrains\PyCharm Community Edition 2018.1.3\jre64"
    
    UWAGA: W nowszych wersjach IDE PyCharm:

    setx -m JAVA_HOME "C:\Program Files\JetBrains\PyCharm Community Edition 2019.3.3\jbr"
    

    Co oznacza, że folder z plikami Javy zostanie zlokalizowany za pomocą aliasu JAVA_HOME. W systemie Windows takie aliasy nazywamy środowiska uruchomieniowego zmiennymi środowiskowymi i są one używane przez wiele programów. Tutaj mamy przykład allure, który szuka poprzez wywołanie ogólnie na świecie przyjętej zmiennej środowiskowej dla folderu z instalacją Javy: JAVA_HOME. Dzięki temu programiści na całym świecie nie muszą zastanawiać się gdzie masz instalację np: Javy lub Pythona tylko posługują się tymi zmiennymi.
    Tak powinien wyglądać log w naszej konsoli:

    
    Microsoft Windows [Version 10.0.17134.285]
    (c) 2018 Microsoft Corporation. All rights reserved.
    
    C:\WINDOWS\system32>setx -m JAVA_HOME "C:\Program Files\JetBrains\PyCharm Community Edition 2018.1.3\jre64"
    
    SUCCESS: Specified value was saved.
    

    Ok zapytajmy teraz o tę zmienną – czy wszystko ustawiło się poprawnie. Użyjemy polecenia echo do wypisania zawartości naszej zmiennej. Dodatkowo musimy otoczyć ją znakiem procentu % gdyż w taki sposób system Windows wie, że to nie zwykły string a zmienna. Czyli całe polecenie to echo %JAVA_HOME% i prawdopodobny wynik w konsoli:

    echo %JAVA_HOME%
    %JAVA_HOME%
    

    No to nie wygląda jak by działało 🙁 Dzieje się tak, ponieważ nasza konsola nie potrafi jeszcze rozpoznać nowych ustawień.

  5. Uruchamiamy nowe okno konsoli Windows i ponownie pytamy o naszą zmienną.

    
    C:\Users\jaktestowac>echo %JAVA_HOME%
    C:\Program Files\JetBrains\PyCharm Community Edition 2018.1.3\jre64
    

    No to mamy już zmienną środowiskową 😀

  6. W terminalu w PyCharm możemy sprawdzić, czy nasza zmienna jest widoczna identyczną komendą. Zapewne bez restartu PyCharm się nie obejdzie. Czasem po ustawianiu zmiennych środowiskowych wymagany jest nawet restart systemu, aby zmiany wszędzie były widoczne. Wykonujemy wszystkie niezbędne kroki aby w terminalu PyCharma uzyskać pozytywny wynik z wywołania echo %JAVA_HOME%.

Uruchamiamy ponownie polecenie odpowiedzialne za generację raportu w terminalu i już wszystko powinno przebiegać zgodnie z planem 🙂

Aby nie było, że jaramy się tylko niestandardowymi rozwiązaniami, możesz zawsze zainstalować środowisko Java JRE dla twojego systemu i ustawić w analogiczny sposób zmienną JAVA_HOME (zgodnie z katalogiem instalacji Javy). Stwierdziliśmy jednak, że oszczędzimy wam dodatkowych instalacji jak już posiadamy gotową i bezpieczną instancję Javy w naszym systemie 🙂 .

3 komentarze

      1. Hej,
        Dzięki za wyłapanie i zgłoszenie tej zmiany! 😉 W nowszych wersjach IDE PyCharm (prawdopodobnie od 2019.1 i w zależności od ustawień) zmieniła się odrobinę struktura katalogów.

        Dodałem drobną aktualizację do lekcji 🙂

        Pozdrawiam,

        Krzysiek Kijas Krzysiek Kijas

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *