JRE 1.7 - wersja java - zwraca: java / lang / NoClassDefFoundError: java / lang / Object


135

Podczas uruchamiania dowolnej aplikacji Java lub po prostu „java” jvm nie działa:

Wystąpił błąd podczas inicjowania maszyny wirtualnej
java / lang / NoClassDefFoundError: java / lang / Object

Oto lista błędnych odpowiedzi:

  1. Prawidłowy katalog główny oprogramowania Java, w tym katalog / bin, znajduje się w globalnej PATH

  2. JAVA_HOME jest ustawiony poprawnie

  3. Wykonanie polecenia java -fullversion działa

    $ java -fullversion
    
    ./java full version "1.7.0_05-b05"
  4. Wszystkie dowiązania symboliczne w / usr / java wskazują na poprawną instalację Java

  5. Podczas tworzenia systemu nie zainstalowałem żadnej „domyślnej” javy

  6. java -version nie powiodło się ... ten sam błąd co powyżej

  7. Nie działa również wydawanie poleceń ze struktury katalogów instalacji Java

  8. To jest 64-bitowa java dla 64-bitowej

Jakieś pomysły?


2
Wygląda na to, że wystąpił problem z załadowaniem rt.jarpliku, co jest wymagane JVMw momencie ładowaniaJRE
Bhavik Ambani

może jakieś kwestie związane z pozwoleniami?
Mark Bramnik

uruchom truss / strace, aby zobaczyć brakujące pliki / uprawnienia do plików
Jayan

inbytebg.com/techblog/?p=189 , na pierwszym komentarzu jest sztuczka szesnastkowa, aby załatać instalator
Sebastian

Odpowiedzi:


186

Ten problem wynika z nieprawidłowej instalacji środowiska Java.

Możliwość 1

UWAGA: ten scenariusz dotyczy tylko środowiska Java 8 i wcześniejszych. Począwszy od języka Java 9, środowisko JRE ma inną strukturę. rt.jar i przyjaciele już nie istnieją, a Pack200 nie jest już używany.

Standardowa biblioteka Java jest zawarty w różnych słoiki, takich jak rt.jar, deploy.jar, jsse.jar, itd. Gdy JRE pakuje te krytyczne pliki JAR są kompresowane z Pack200 i przechowywane jako rt.pack, deploy.pack, jsse.packitp instalator Java ma rozpakować nich. Jeśli doświadczasz tego błędu, najwyraźniej tak się nie stało.

Musisz ręcznie uruchomić unpack200wszystkie .packpliki w środowisku JRE lib/i lib/ext/folderach.

Windows

Aby rozpakować jeden .packplik (na przykład rt.pack), uruchom:

"%JAVA_HOME%\bin\unpack200" -r -v rt.pack rt.jar

Aby rekurencyjnie rozpakować wszystkie .packpliki, z uruchomienia głównego środowiska JRE:

for /r %f in (*.pack) do "%JAVA_HOME%\bin\unpack200.exe" -r -q "%f" "%~pf%~nf.jar"

*nic

Aby rozpakować jeden .packplik (na przykład rt.pack), uruchom:

/usr/bin/unpack200 -r -v rt.pack rt.jar

Aby rekurencyjnie rozpakować wszystkie .packpliki, z uruchomienia głównego środowiska JRE:

find -iname "*.pack" -exec sh -c "/usr/bin/unpack200 -r -q {} \$(echo {} | sed 's/\(.*\.\)pack/\1jar/')" \;

Możliwość 2

Źle zainstalowałeś Javę w inny sposób. Być może zainstalowałeś bez uprawnień administratora lub próbowałeś po prostu wyodrębnić pliki z instalatora. Spróbuj ponownie, korzystając z instalatora i / lub więcej uprawnień. Lub, jeśli nie chcesz używać instalatora, użyj .tar.gzpakietu Java.


2
To jest kwestia Solaris, a nie Windows.
Robin Kanters

1
To rozwiązanie pomogło, jeśli po prostu pobierasz plik archiwum java linux i nie chcesz używać skryptów instalacyjnych.
PotOfTea

23
@Robin Kanters, ponieważ dokładnie ten komunikat o problemie / błędzie, jego symptomy i sposoby jego rozwiązania są niezależne od platformy. To jest kwestia Java RE, a nie Solaris.

1
potwierdź występowanie tego problemu w systemie Windows po wykonaniu automatycznej aktualizacji przez oprogramowanie Java
Lassi Kinnunen

5
Zawsze po prostu używam for %i in (*.pack) do (..\bin\unpack200 "%i" "%~ni.jar" & del "%i")(może pewnego dnia sprawię, że będzie trochę bardziej niezawodny, aby nie musieć ręcznie zmieniać ścieżki, ale z drugiej strony zwykle używam po prostu .gzwydania JRE, które ich nie pakuje. )
Synetech

31

W przypadku języka Java 8 w systemie * nix OS przejdź do <jdk root>/jre/lib(dla mnie /usr/java/jdk1.8.0_05/jre/lib). Z tego katalogu wykonaj:

../../bin/unpack200 rt.pack rt.jar
../../bin/unpack200 jsse.pack jsse.rar
../../bin/unpack200 charsets.pack charsets.jar

Aby zapobiec problemom z wersją w przypadku, gdy masz zainstalowane inne środowisko JRE, użyj tego samego, unpack200które jest dostarczane z naprawianym JRE - to znaczy z wiersza poleceń użyj ../../bin/unpack200(dla mnie to rozszerza się do /usr/java/jdk1.8.0_05/bin/unpack200), a nie tylko unpack200.


3
Aby "<jdk1.8_root>/lib" ../bin/unpack200 tools.pack tools.jar"<jdk1.8_root>/jre/lib/ext" ../../bin/unpack200 jfxrt.pack jfxrt.jar ../../bin/unpack200 localedata.pack localedata.jar
programować

Można znaleźć tutaj kilka skryptów do rozpakowania wszystkich brakujących słoików z ręcznie wyodrębnionego JDK: stackoverflow.com/questions/2203922/ ...
Kloe2378231

To był problem w moim przypadku. Używam Ubuntu 18.04. Dziękuję Ci!
Boncho Valkov

13

Wygląda na to, że dla architektury 64-bitowej trzeba zainstalować zarówno wersję 32-bitową, jak i 64-bitową jre (pliki niezależne od architektury jako rt.jar są rozpowszechniane tylko w wersji 32-bitowej).

Pamiętaj zatem, aby zwrócić uwagę na dołączenie prawidłowego pliku wykonywalnego Java do globalnej zmiennej środowiskowej PATH.


3
Skąd to masz architecture independent files as rt.jar are distributed only in the 32-bin version?
Aleksandr M

Właśnie przejrzałem zawartość dystrybucji
Tommaso

+1 Tak, masz rację. rt.jar nie znajduje się w pakiecie jre dla 64-bitowej wersji solaris.
Aleksandr M

3
Aby dodać do tego - natknęliśmy się na to podczas ręcznej instalacji na SmartOS. Postępuj zgodnie z instrukcjami podanymi na blogs.oracle.com/thefield/entry/solaris_11_jdk_installation (w większości), a wszystko będzie dobrze.
Khushil

Zainstalowałem oba pakiety jdk-7u79-solaris-sparcv9.tar.Z i jdk-7u79-solaris-sparc.tar.Z. Teraz wygląda na to, że działa. Ty.
Alex Pi

11

Szybkie rozwiązanie dla niecierpliwych ludzi;) Na komputerach z systemem Windows spróbuj tego: Przejdź do C:\Windows\System32katalogu i usuń java.exe(lub zmień nazwę na podobną java.exe.old).

Od co najmniej 1.6 java.exew katalogu Windows nie powinno być . Jeśli tak, to jest to pozostałość po czymś.

Nieco więcej do czytania:

Jestem naprawdę zdziwiony, że pytanie z 2012 roku nie ma jeszcze zatwierdzonej odpowiedzi i rzeczywiście napotkałem ten sam problem w 2015 roku na moim 32-bitowym systemie operacyjnym Win 7!

Więc co się stało?

Zasadniczo wszystko działało dobrze, pobrałem bazę danych H2 i kiedy próbowałem uruchomić H2 Console (Command Line), otrzymałem:

Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object

Znalazłem to pytanie i udało mi się potwierdzić te same objawy:

JAVA_HOME jest ustawiony poprawnie:

echo %JAVA_HOME%
C:\Program Files\Java\jdk1.6.0_26

java -versionnie działa, ale java --fullversiondziała dobrze:

java -fullversion
java full version "1.6.0_45-b06"

ROZWIĄZANIE: Idź do C:\Windows\System32katalogu i usuń (właściwie zmieniłem nazwę) java.exeplik !!!!

Teraz otrzymuję:

java -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing)

i H2 Console (Command Line)działa dobrze!

Kredyty znajdują się w ostatnim poście na tym forum: https://bukkit.org/threads/java-lang-noclassdeffounderror-java-lang-object.70450/


Ja też mam ten problem, ale wygląda na to, że w twoim przypadku po prostu używasz starszej wersji java. 1.6.0_26! = 1.6.0_45, Twoja starsza wersja prawdopodobnie po prostu nie ma problemu.
Centimane

Dobrze zauważony! Mam zainstalowany JDK 1.6.0_26 i ta „nowsza” wersja pochodzi z folderu Windows System32. Oba są w zmiennej środowiskowej PATH i tak naprawdę nie chcę używać środowiska wykonawczego Java dostarczonego przez system Windows. Dlatego usunięcie go rozwiązało problem. Może masz również dwa środowiska uruchomieniowe Java w swojej PATH?
iaforek

Dla mnie w mojej instalacji brakowało pliku rt.jar (w którym znajduje się java.lang.Object). Niestety, kiedy instaluję RPM z kickstart, brakuje rt.jar, ale jeśli zainstaluję po nim, to zabawny problem.
Centimane

Nie mogę ci pomóc z RPM. Przepraszam za to.
iaforek

4
Dla mnie C:\ProgramData\Oracle\Java\javapathproblem powodowały dowiązania symboliczne do języka Java w programie. Zmieniam zmienną środowiskową PATH i teraz działa.
WhiteKnight

10

Ściągnąłem dziś nowy JDK (1.8.0.73), zacząłem c:> java.exei otrzymałem niesławny:

Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object

Chciałem tylko podzielić się tutaj moim działającym rozwiązaniem.

Po przejściu do jdk\binfolderu Java działała poprawnie, więc wiedziałem, że to plik PATH. Ustawić PATHtylko \jdk\binw CMD to udowodnić i to działało.

A więc jeden z folderów, PATHktóry musiał mieć java.exe, był przyczyną konfliktu, pomyślałem. Jak się okazało, to właśnie on C:\>ProgramData\Oracle\Java\javapathprzechowuje linki symboliczne do plików wykonywalnych.

java.exewskazywał jre\bin. Plik był uszkodzony, kiedy uruchamiałem \jre\bin\java.exe- dokładnie ten sam błąd. Bingo. Ponownie zainstalowałem JRE i problem zniknął. Miłego kodowania ...


8

Najprawdopodobniej w instalacji brakuje pliku o nazwie rt.jar, który zawiera plik klasy dla java.lang.Object. Sprawdź pliki instalacyjne itp.

W szczególności należy zauważyć, że 64-bitowy program intsaller nakłada (lub instaluje „obok”) istniejącą instalację 32-bitową. Innymi słowy, aby uzyskać w pełni działającą instalację 64-bitową, musisz najpierw uruchomić instalację 32-bitową, a następnie instalację 64-bitową, jeśli masz maszynę obsługującą 64-bitową ...

Jeśli zamiast tego wykonasz tylko instalację 64-bitową, w instalacji brakuje niektórych plików i pojawią się błędy, takie jak powyższy.


To część odpowiedzi. Musisz rozpakować wszystkie pliki * .pack w katalogu / lib i lib / ext ścieżki java SDK. unpack200 może Ci w tym pomóc. Zobacz komentarz Rigg802.
niebezpieczeństwo89

7

W systemie Windows 10 miałem ten sam problem ze środowiskiem JRE 1.8 (8u121).
Pisanie na maszynie

java -version

wraca znak zachęty cmd

Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object

Wszystkie inne polecenia, echo %JAVA_HOME%, echo %JRE_HOME%, echo %PATH%, java -fullversionpracował w porządku.

Przechodząc do zmiennych środowiskowych w panelu administracyjnym systemu, usuń z PATH link C:\ProgramData\Oracle\Java\javapathi upewnij się, że ustawiłeś w PATH link do C:\Program Files\Java Folder\bin.

Następnie sprawdź, czy C:\Windows\System32istnieje java.exeplik; jeśli prawda, usuń ten plik.

Pisanie teraz java -versiondziała dobrze.


2
Mam ten sam problem po aktualizacji systemu Windows, ale nie mam folderu C:\Program Files\Java Folder\bin. Zamiast tego używam, C:\Program Files\Java\jdk1.8.0_161\binale i tak mi to nie pomaga. Nie ma pliku java.exe w folderze System32
Tom,

6

Ten problem występuje, gdy _uncompressing_zamiast _executing_niego instalujesz pakiet JDK .

Przez przykład:

unzip jdk-6u45-linux-x64.bin  (wrong)

sh ./jdk-6u45-linux-x64.bin   (right)

W pierwszym scenariuszu biblioteki wykonawcze, takie jak rt.jar, nie są automatycznie dekompresowane (w związku z tym zamiast plików .jar można znaleźć pliki rt.pack itp.).


4

Ostatnio miałem ten sam problem. W moim przypadku moja maszyna z systemem Windows 7 automatycznie pobrała java i dodała C:\ProgramData\Oracle\Java\javapathna początku zmiennej środowiskowej mojej ścieżki, co zepsuło moją java. Kiedy pozbyłem się tego ze ścieżki, zadziałało.


3

jeśli wykonasz "chmod u + rx" na pliku binarnym java i uruchomisz go, rozpakuje pliki jar i będziesz mógł wykonać wersję java bez błędów w czasie wykonywania


3

Nie możesz zainstalować tylko wersji 64-bitowej, musisz najpierw zainstalować wersję 32-bitową, a następnie dodać komponenty 64-bitowe.

Z java.com:

Instalowanie środowiska JRE w systemie 64-bitowym, który umożliwia 32-bitową maszynę JVM, jest procesem dwuetapowym: najpierw należy zainstalować 32-bitowe środowisko JRE, a następnie zainstalować dodatkową obsługę operacji 64-bitowych. Nazwy plików są następujące:


OP nie wspomina o uruchamianiu 32-bitowej maszyny JVM w systemie 64-bitowym ...?
wookie919

1

Jeśli zainstalujesz wersję 64-bitową bez uprzedniej instalacji wersji 32-bitowej, ten błąd wystąpi pomimo naprawienia wszystkich innych problemów. Mam nowy komputer Dell i7 z 64-bitowym systemem Windows 10 Pro i oprogramowaniem Java 8u71. Po dodaniu moich% path% i% classpath% do zmiennych środowiskowych i wypróbowaniu kilku innych poprawek, odinstalowanie wersji 64-bitowej, zainstalowanie wersji 32-bitowej, a następnie ponowna instalacja wersji 64-bitowej, naprawiło to.

Niektóre problemy, takie jak brak rozpakowywania plików itp., Które zostały wymienione jako możliwe przyczyny, mogą nadal powodować problemy, ale jeśli tego nie zrobisz, inne poprawki nie będą działać.


1

W moim przypadku korzystam z Windows 8.1 (zainstalowany jdk1.8.0_77), zrobiłem trzy rzeczy:

  1. Usunąłem poprzednie jdks
  2. Zmieniłem nazwę pliku java.exe w C: \ Windows \ System32
  3. Usunąłem również C: \ ProgramData \ Oracle \ Java \ javapath w mojej PATH (echo% PATH%)

i voila, naprawiłem to!



0

Inną odpowiedzią może być użycie pliku tar.gz w przypadku Linuksa. Wydaje się, że coś takiego istnieje również w przypadku platformy solaris. W ten sposób wszystkie pliki będą już w oczekiwanym formacie i nie będzie żadnych problemów z rozpakowywaniem.


Co masz na myśli, używając zamiast tego pliku tar.gz?
Koray Tugay

Biorąc pod uwagę, że odpowiedziałem na to około 2,5 roku temu, musiałem spojrzeć wstecz na witrynę pobierania Java. Tam możesz pobrać java w pakiecie, takim jak .rpm dla LinuX. Myślę, że próbowałem tego wcześniej i wpadłem w kłopoty. Pobieranie pliku tar.gz działało lepiej, ponieważ zawierał całą zawartość w żądanym formacie pliku.
Rythmic

0

Mam problem z instalacjami Linux x86_64 z JDK 1.7.0_40 i586. Doszedłem do wniosku, że problem polega na tym, że rpm nie może rozpakować plików jar, jak wspomniał Rigg802 (chociaż rpm kończy oznaczanie sukcesu):

Unpacking JAR files...
        rt.jar...
/var/tmp/rpm-tmp.zLzkkb: /usr/java/jdk1.7.0_40/bin/unpack200: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
Error: unpack could not create JAR file:

        /usr/java/jdk1.7.0_40/jre/lib/rt.jar

Plik /lib/ld-linux.so.2 jest udostępniany przez glibc-2.12-1.107.el6_4.4. i686, który nie jest jednym z zestawów rpm jdk rpm.

Oracle JDK rpm wymaga również 32-bitowych wersji libgcc-4.4.7-3.el6. i686 do zainstalowania

Zatem obejściem jest zainstalowanie najpierw glibc-2.12-1.107.el6_4.4.i686 i libgcc-4.4.7-3.el6.i686.


Mam ten sam problem z Fedorą 20 i zainstaluj libgcc-4.8.2-7.fc20.i686, aby rozwiązać problem. Txs
Pipe

0

Szybka poprawka, która zadziałała dla mnie:

for file in $(find "$JAVA_HOME" -name "*pack")
do 
    unpack200 "${file}" "${test_file/%pack/jar}";
done

0

Okazało się, że ten błąd wystąpił podczas rozpakowywania pliku .rpm.

Następnie usunąłem ten folder i pobrałem jdk-7u79-linux-x64.tar.gz dla systemu Linux 64 i zamiast tego rozpakowałem zawartość tego pliku. Ponadto: export JAVA_HOME = / opt / java / jdk1.7.0_79 export JDK_HOME = / opt / java / jdk1.7.0_79 export PATH = $ {JAVA_HOME} / bin


0

Po prostu zainstaluj ponownie jre . Po prostu rozwiązało mój problem. (Partia startowa SonarQube zaczęła pokazywać ten błąd po zainstalowaniu jdk)


0

Przejdź do panelu sterowania, odinstaluj elementy związane z Javą (zamknij zaćmienie, jeśli jest otwarte), a następnie zainstaluj ponownie Javę i otwórz eclipse, wyczyść projekty.


Głosuj przeciw. OP najwyraźniej nie jest na platformie Windows.
peterh

0

Po prostu zrobiłem to na Solarisie i napotkałem ten sam problem, w którym nawet "wersja java" nie działa. Jest powód, dla którego 64-bitowe wersje dystrybucji są DUŻO mniejsze niż 32-bitowe. Rzeczywiście jest tak, jak stwierdzono powyżej:

Innymi słowy, aby uzyskać w pełni działającą instalację 64-bitową, musisz najpierw uruchomić instalację 32-bitową, a następnie instalację 64-bitową, jeśli masz maszynę obsługującą 64-bitową ...

Więc uruchomiłem instalator dla wersji 32-bitowej:

sh jdk-6u131-solaris-sparc.sh

Następnie uruchomiłem instalator dla wersji 64-bitowej:

sh jdk-6u131-solaris-sparcv9.sh

To daje mi kilka plików wykonywalnych Java do wyboru:

  • $ znajdź. -name java
  • ./jdk1.6.0_131/db/demo/programs/scores/java
  • ./jdk1.6.0_131/db/demo/programs/vtis/java
  • ./jdk1.6.0_131/bin/java
  • ./jdk1.6.0_131/bin/sparcv9/java
  • ./jdk1.6.0_131/jre/bin/java
  • ./jdk1.6.0_131/jre/bin/sparcv9/java

Java sparcv9 jest wersją 64-bitową i działa z "-version" po zainstalowaniu razem z 32-bitowym JDK.

  • ./jdk1.6.0_131/bin/sparcv9/java -version
  • wersja java „1.6.0_131”
  • Java (TM) SE Runtime Environment (kompilacja 1.6.0_131-b32)
  • Java HotSpot (TM) 64-bitowa maszyna wirtualna serwera (wersja 20.131-b32, tryb mieszany)

-Dan


To prawda, ale pytanie pochodzi z 2012 roku i nie znamy platformy PO. Odnosi się /usr/javawięc do systemu operacyjnego podobnego do Linux / Unix. Masz rację, że instalacja Javy w Solarisie różniła się od każdego innego systemu operacyjnego aż do wersji Java8. Zasadniczo musiałeś najpierw zainstalować pakiet 32-bitowy, a następnie pakiet 64-bitowy na wierzchu . Ale to wszystko w przeszłości, teraz, gdy 32-bitowa Java nie jest już obsługiwana w Solarisie, podobnie jak, powiedzmy, Mac OS X.
peterh

0

W oknie 10 jest już ścieżka obecna w pliku env as C:\>ProgramData\Oracle\Java\javapath zawiera ona dowiązania symboliczne do plików wykonywalnych.

Kiedy instaluję nową wersję i usuwam ją ze zmiennej środowiskowej, cały mój projekt zaczyna ją wyświetlać.

Używam tlenu zaćmienia w oknie 10

Aby rozwiązać ten problem: -

  1. Po prostu usunąłem ścieżkę C:\>ProgramData\Oracle\Java\javapathze zmiennej środowiskowej i dodałem nowy env jako JAVA_HOME i% JAVA_HOME% / bin w ścieżce

  2. Ponownie instaluję jdk z uprawnieniami administratora (usuń poprzedni folder JRE)

  3. Otwórz projekt eclipse> kliknij prawym przyciskiem myszy> Idź do właściwości> W bibliotekach> Teraz usuń bibliotekę systemową JRE> Kliknij Dodaj bibliotekę> wybierz „Biblioteka systemowa JRE”> Kliknij Dalej> Wybierz „Domyślne środowisko JRE obszaru roboczego (jre1.8.x_xxx)”> koniec

Mój problem został rozwiązany :) Mam nadzieję, że to Ci pomoże :)



0

Próbowałem więc wszystkiego i w końcu wydaje się, że ponowna instalacja javy po odinstalowaniu rozwiązała mój problem.


0

jeśli jakiś problem z wersją instalacyjną JAVA

C: \ Gdzie JAVA

poda lokalizację pobierania Java. Jeśli masz inną ścieżkę niż instalacja, usuń te pliki lub zmień jej nazwę (może to być _backup). otrzymasz odpowiednią wersję pliku java.


-1

Napotkałem ten sam problem, zainstalowałem dwie wersje java, stąd ten problem. aby to potwierdzić, kliknij ikonę java w panelu sterowania, jeśli nie otwiera się, problem jest taki sam, po prostu przejdź i odinstaluj jedną wersję. bułka z masłem. dzięki.


-2

Napotkałem ten sam problem: wystąpił błąd podczas inicjowania maszyny wirtualnej java / lang / NoClassDefFoundError: java / lang / Object

Wykonaj poniższe czynności, aby rozwiązać problem:

Krok 1. Przejdź do C: \ Program Files \ i wyszukaj folder Java.

Krok 2. Usuń folder C: \ Program Files \ Java.

Krok 3. Pobierz nowy pakiet Jdk dla swojej wersji 32-bitowej / 64-bitowej ze strony http://www.oracle.com/technetwork/java/javase/downloads/index.html

Krok 4. Zainstaluj JDK

Krok 5: Teraz ustaw JAVA_HOME na „C: \ Program Files \ Java \ jdk1.8.0_91”

Krok 6: Otwórz wiersz polecenia i wprowadź wersję java.

To działa.


OP wspomniał, że JAVA_HOME nie był tutaj problemem
Alexandre Beaudet

Nie ma potrzeby ponownego konfigurowania JAVA_HOME, jeśli jest już ustawiona na lokalizację jdk. Możesz po prostu pominąć krok 5. Po prostu usuń starszy JDK i zainstaluj nowszy.
Mahesh Sutar
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.