Jaka jest konieczność rt.jar?Dlaczego używamy pliku rt.jar w projekcie java?
Odpowiedz
rt = czas pracy
Zawiera wszystkie biblioteki Java Runtime. (Essential)
Zawiera wszystkie klasy dostępne w środowisku Java Runtime Environment.
Jeśli nie masz go w swojej ścieżce klas, nie będziesz mieć dostępu do żadnej z tych klas, których potrzebujesz, takich jak java.lang.String lub java.io.File.
Środowisko wykonawcze (rt.jar) przechowuje wszystkie (większość ..) klasy java, które tworzą Java SE. Jest automatycznie dodawany do ścieżki klas.
Zawiera wbudowane klasy Java. rt
może oznacza Runtime
. Bez niego nie mógłbyś uruchomić programów Java
:)
Plik rt.jar znajduje się tam, gdzie znajdują się wszystkie pakiety java. Na przykład, jeśli plik klasy wywoła pakiet java.util, wówczas JVM może go wyszukać wewnątrz pliku rt.jar, co umożliwia jego prawidłowe działanie.
Na marginesie: nie zadzieraj z tym.
Kompilacja krzyżowa to jeden z przypadków, w którym należy go wyraźnie użyć.
Np. Jeśli korzystasz z Java 8 i chcesz skompilować Java 7, odrzucając rozszerzenia Java 8. Więc można spróbować:
javac -source 1.7 Main.java
Ale wtedy javac
powie: warning: [options] bootstrap class path not set in conjunction with -source 1.7
, bo to może generować błąd co skompilować przeciwko innej wersji JCL.
Więc trzeba by ustawić rt.jar
z:
javac -source 1.7 -bootclasspath /usr/lib/jvm/java-7-oracle/jre/lib/rt.jar Main.java
Ten został poproszony o: warning: [options] bootstrap class path not set in conjunction with -source 1.5
rt.jar oznacza wykonawczego JAR i zawiera klasy bootstrap, mam na myśli wszystkie klasy z jądra Java API. Zauważyłem, że wielu programistów Java nie wie, co to jest rt.jar? i często mylone z rolą pliku rt.jar lub dlaczego używamy pliku rt.jar w Javie? Nic dziwnego, nazwa jest trochę tajemnicza.
Ten plik zawsze znajduje się w katalogu lib środowiska JRE, przynajmniej w systemach Windows i Linux. W systemie MacOSX znajduje się w innej lokalizacji i ma inną nazwę, np. Classes.jar, ale jest to tylko przed wersją JDK 1.7. Od wersji Java 7 Apple przestało dystrybuować Javę, a jeśli zainstalujesz ją oddzielnie, będzie miała taką samą nazwę jak rt.jar.
Wielu programistów uważa, że ich klasy znajdują się w pliku rt.jar, aby rozwiązać problemy związane z klasą classpath, ale jest to zły pomysł. Powinieneś nigdy nie mieszać się do pliku rt.jar, zawiera on pliki klas, które są zaufane przez JVM i ładowane bez rygorystycznego sprawdzania bezpieczeństwa, jakie robi dla innych plików klasy.
Zawiera wszystkie standardowe klasy JDK. Podczas procesu ładowania klas w JVM jest to pierwszy ładowany ładunek, który jest wykonywany przez moduł ładujący klasy bootstrap, nadrzędny dla wszystkich programów ładujących klasy.
Można to sprawdzić przez siebie kompilacji programu java z tej opcji:
javac -verbose:class program.java
aby zobaczyć sekwencję klasy załadowany.
Próbka:
[Loaded sun.security.timestamp.TimestampToken from /usr/lib/jvm/java-8-oracle/jre/lib/rt.jar]
[Loaded sun.security.util.CertConstraintParameters from /usr/lib/jvm/java-8-oracle/jre/lib/rt.jar]
[Loaded sun.security.util.ECKeySizeParameterSpec from /usr/lib/jvm/java-8-oracle/jre/lib/rt.jar]
[Loaded sun.security.util.ECUtil from /usr/lib/jvm/java-8-oracle/jre/lib/rt.jar]
[Loaded sun.security.util.Pem from /usr/lib/jvm/java-8-oracle/jre/lib/rt.jar]
- 1. Dlaczego używamy dynamicznego proxy
- 2. Dlaczego używamy setLayoutParams?
- 3. Dlaczego używamy web.xml?
- 4. Różnica HashMap w alt-rt.jar i rt.jar?
- 5. Dlaczego używamy zmiennego słowa kluczowego w C++?
- 6. Dlaczego nie używamy rozszerzenia .class z komendą "java"?
- 7. Dlaczego używamy pomocnika HTML w ASP.NET MVC?
- 8. Dlaczego używamy assert() i assert_options() w php?
- 9. Dlaczego używamy TRUE obciążenia widok w CodeIgniter
- 10. Dlaczego używamy "?" operator w szablonie wiążącym w kątowym 2
- 11. rt.jar com.sun.istackinternal packages
- 12. Dlaczego używamy nieuporządkowanych list do tworzenia navów?
- 13. Konwencja dotycząca przechowywania pliku XSD w projekcie Java Eclipse
- 14. Dlaczego EF DataBase Najpierw nie używamy getdate()?
- 15. Dlaczego czasami używamy formatu szesnastkowego po przecinku?
- 16. ScalaTest w projekcie Java Eclipse
- 17. Automatyczne zwiększanie numeru kompilacji w projekcie Java
- 18. Aktualizowanie pliku .settings/org.eclipse.wst.common.component w projekcie maven
- 19. Dlaczego nie używamy == do porównywania ciągów znaków w Matlab
- 20. Dlaczego używamy [super viewDidLoad] w każdej metodzie viewDidLoad?
- 21. Klasa z rt.jar Nie znaleziono
- 22. Używanie nowychb w dużym projekcie Java
- 23. Użyj interfejsów Clojure w projekcie biblioteki Java
- 24. Używanie biblioteki Java w projekcie iOS
- 25. SBT zawsze ma pełne odbudowanie powodu zmodyfikowanej binarnej uzależnienia rt.jar
- 26. Dlaczego wystąpił błąd w projekcie wix?
- 27. Czy zawartość pliku rt.jar zmienia się w zależności od różnych dostawców JVM?
- 28. Kiedy używamy narzędzia SpringApplicationBuilder?
- 29. Do czego używamy glifu?
- 30. Dlaczego używamy procesorów do śledzenia promieni zamiast układów GPU?
przypuszczam, chcesz powiedzieć, "nie można uruchomić ...". –
Tak, oczywiście :) –