Pourquoi utilisons-nous rt.jar dans un projet Java?

Quelle est la nécessité de rt.jar?

rt = temps d’exécution

Il contient toutes les bibliothèques d’exécution Java. (Essentiel)

Il contient toutes les classes fournies dans l’environnement d’exécution Java.

Si vous ne l’avez pas sur votre chemin de classe, vous n’aurez pas access aux classes que vous devez utiliser comme java.lang.Ssortingng ou java.io.File.

La compilation croisée est un cas où vous devez explicitement l’utiliser.

Par exemple, si vous utilisez Java 8 et souhaitez comstackr Java 7 tout en rejetant les extensions Java 8. Donc, vous pouvez essayer:

javac -source 1.7 Main.java 

Mais javac dira alors: warning: [options] bootstrap class path not set in conjunction with -source 1.7 , car il pourrait générer une erreur de compilation avec une version différente du JCL.

Donc, vous devez définir rt.jar avec:

 javac -source 1.7 -bootclasspath /usr/lib/jvm/java-7-oracle/jre/lib/rt.jar Main.java 

Cela a été demandé à: avertissement: [options] chemin d’access à la classe bootstrap non défini conjointement avec -source 1.5

rt.jar signifie runtime JAR et contient les classes bootstrap, je veux dire toutes les classes de Core Java API. J’ai trouvé que beaucoup de programmeurs Java ne savent pas ce que rt.jar est? et souvent confondu avec le rôle du fichier rt.jar ou pourquoi nous utilisons le fichier rt.jar en Java? Pas de surprise, le nom est un peu crypté.

Ce fichier réside toujours dans le répertoire lib de JRE, au moins sous Windows et Linux. Dans MacOSX, il réside à un emplacement différent et a également un nom différent, à savoir classes.jar, mais cela ne concerne que JDK 1.7. A partir de la version Java 7, Apple a cessé de dissortingbuer Java et si vous l’installez séparément, il portera le même nom que rt.jar.

Beaucoup de développeurs pensent à inclure leurs classes dans rt.jar pour résoudre les problèmes liés aux classpath, mais c’est une mauvaise idée. Vous ne devriez jamais jouer avec rt.jar, il contient des fichiers de classe approuvés par JVM et chargés sans vérification de sécurité rigoureuse pour les autres fichiers de classe.

Il contient les classes intégrées Java. rt signifie peut-être Runtime . Sans elle, vous ne pourriez pas exécuter de programmes Java 🙂

Le rt.jar est l’endroit où tous les paquets Java résident. Par exemple, si un fichier de classe appelle le package java.util, la JVM peut le rechercher dans le fichier rt.jar, ce qui lui permet de s’exécuter correctement.

Sur une note de côté: ne pas jouer avec elle.

Le runtime (rt.jar) contient toutes les classes Java (la plupart des ..) qui forment le SE Java. Il est ajouté au classpath automatiquement.

Il contient toutes les classes JDK standard. Pendant le processus de chargement de classe dans JVM, c’est le premier à être chargé et est effectué par le chargeur de classe bootstrap, parent de tous les chargeurs de classe.

Vous pouvez le vérifier vous-même en compilant un programme Java avec cette option:

 javac -verbose:class program.java 

afin de voir la séquence de la classe chargée.

Échantillon:

 [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]