rt.jar обозначает JAR времени выполнения и содержит классы начальной загрузки, я имею в виду все классы из Core Java API.Я обнаружил, что многие программисты на Java не знают, что такое rt.jar?и часто путают с ролью файла rt.jar или почему мы используем файл rt.jar в Java?Не удивительно, название немного загадочно.Этот файл всегда находится в каталоге lib JRE, по крайней мере, в Windows и Linux.В MacOSX он находится в другом месте и также имеет другое имя, то есть classes.jar, но это только до JDK 1.7.Начиная с версии Java 7 Apple прекратила распространение Java, и если вы установите ее отдельно, она будет иметь то же имя, что и rt.jar.Многие разработчики думают включить свои классы в rt.jar для решения проблем, связанных с classpath, но это плохая идея.Вы никогда не должны связываться с rt.jar, он содержит файлы классов, которым доверяет JVM и загружает без строгой проверки безопасности, которую он выполняет для других файлов классов.В этой статье мы узнаем некоторые интересные вещи об этом волшебном JAR из мира Java.Для тех программистов, которые являются новичками в Java и не знакомы с JAR-файлом, это zip-подобный файл, точно известный как Java-архив, в котором хранятся файлы классов Java и любые ресурсы, необходимые программе.Он также может содержать файл mainfest, который может включать в себя запись Main-Class, чтобы сделать его исполняемым JAR, который можно запустить с помощью команды java -jar.
Важные замечания о файле rt.jar в Java
- rt.jar обозначает runtime и содержит все скомпилированные файлы классов для базовой среды Java Runtime.
2) Вы должны включить rt.jar в ваш classpath, иначе вы нене имеют доступа к основным классам, например, java.lang.String, java.lang.Thread, java.util.ArrayList или java.io.InputStream и всем другим классам из Java API.Вы можете увидеть, что находится внутри rt.jar, открыв его с помощью WinRAR или WinZip клиента.Вы можете видеть, что он содержит не только все API Java, но также и внутренние классы, указанные в com-пакете.
Что такое rt.jar в Java
3) В windows rt.jar всегда будет находитьсяв $ JAVA_HOME / jre / lib, где $ JAVA_HOME ссылается на каталог установки JDK.Даже если вы не устанавливаете JDK и просто устанавливаете JRE, вы увидите его в том же месте, но вы не найдете rt.jar в каталоге $ JAVA_HOME / lib.Кстати, в MacOSX он называется classes.jar и находится в каталоге / System / Library / Frameworks // Каталог классов.На следующем скриншоте вы можете видеть, что rt.jar находится в каталоге lib JRE в Windows 8.
Где найти rt.jar в Windows, Linux и MacOSX
4) Файл rt.jarгде находятся все пакеты Java.Например, если файл класса должен ссылаться на класс из пакета java.util.concurrent, например, ConcurrentHashMap, то JVM будет искать его внутри rt.jar, что позволит ему работать правильно.
5)Еще один вопрос, который задает Java-программист: где я могу найти исходный код для классов, включенных в rt.jar?хорошо, если вы установили JDK, а не JRE, вы можете найти все источники в файле $ JAVA_HOME / src.zip.Кстати, источники Sun. * также включены в src.zip, но это собственный закрытый код Oracle.Я также предлагаю вам включить этот JAR-файл в Eclipse, чтобы вы могли просматривать исходный код любого JDK-класса, просто набрав Ctrl + T и имя класса, а остальное позаботится в функции поиска Eclipse по типу Java.
6) Одна из самых важных вещей, которую нужно знать о rt.jar, - это то, что все классы в этом файле JAR известны JVM, что означает, что JVM не выполняет все проверки, которые он выполняет при загрузке любого другого JAR излюбое другое место.Это сделано из-за различных причин производительности, и именно поэтому эти классы загружаются загрузчиками или загрузчиками классов primodial.Не пытайтесь включать ваши файлы классов в rt.jar, так как это не рекомендуется Java.Это также компромисс с любой безопасностью.
7) Если вам интересны различные двоичные файлы и файлы JAR, используемые платформой Java, посмотрите на эту диаграмму.Вы можете видеть, что JDK имеет три основные папки bin, lib и jre.Каталог bin содержит все исполняемые двоичные файлы, например, java.exe для запуска Java-программы, javac.exe для компиляции Java-программ и т. д. lib содержит tools.jar и dt.jarВ папке jre снова находятся каталог bin и lib.Именно в этом каталоге lib находится rt.jar.Кстати, для полного объяснения того, что делает каждый из этих файлов и папок, посетите официальные страницы Oracle.Они очень полны и наглядны.
основные папки и файлы в JDK JRE
Это все о файле rt.jar в Java.Теперь вы знаете, какова цель rt.jar и почему вы не должны связываться с ней.Вы можете найти этот файл JAR в каталоге $ JAVA_HOME / jre / lib, и я рекомендую вам посмотреть его самостоятельно.
Подробнее: https://javarevisited.blogspot.com/2015/01/what-is-rtjar-in-javajdkjre-why-its-important.html#ixzz5icL7sAMZ