2010-06-22 8 views

Répondre

35

rt = Durée

Il contient toutes les bibliothèques d'exécution Java. (Essential)

46

Il contient toutes les classes fournies dans Java Runtime Environment.

Si vous ne l'avez pas sur votre chemin de classe, vous n'aurez accès à aucune de ces classes que vous devez utiliser comme java.lang.String ou java.io.File.

4

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

7

Il contient les classes intégrées Java. rt peut-être signifie Runtime. Sans cela vous ne pourriez pas exécuter les programmes Java :)

+0

Je suppose que vous voulez dire, "tu ne pouvais pas courir ...". –

+1

Oui, bien sûr :) –

5

Le fichier rt.jar est l'emplacement de tous les paquets java. 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 plaisante pas avec elle.

10

La compilation croisée est un cas où vous devez l'utiliser explicitement. Par exemple, si vous utilisez Java 8 et que vous voulez compiler Java 7 tout en rejetant les extensions Java 8, par exemple. Donc, vous pouvez essayer:

javac -source 1.7 Main.java 

Mais javac dira: warning: [options] bootstrap class path not set in conjunction with -source 1.7, car il peut générer des erreurs co 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 

Ce fut demandé à: warning: [options] bootstrap class path not set in conjunction with -source 1.5

7

rt.jar signifie l'exécution JAR et contient les classes d'amorçage, je veux dire toutes les classes de base API Java J'ai trouvé que de nombreux programmeurs Java ne sait pas ce qui est rt.jar? 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 énigmatique.

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, c'est-à-dire classes.jar, mais c'est seulement avant JDK 1.7. A partir de Java 7, Apple a arrêté de distribuer Java et si vous l'installez séparément, il aura le même nom que rt.jar.

De nombreux développeurs pensent inclure leurs classes dans rt.jar pour résoudre les problèmes liés au classpath, mais c'est une mauvaise idée. Vous ne devriez jamais jouer avec rt.jar, il contient des fichiers de classe qui sont approuvés par JVM et chargés sans vérification de sécurité stricte, il le fait pour d'autres fichiers de classe.

2

Il contient toutes les classes JDK standard. Au cours du processus de chargement de classe dans JVM, il s'agit du premier à être chargé et est effectué par le chargeur de classe bootstrap, parent de tous les chargeurs de classe.

Vous pouvez 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.

Exemple:

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