2010-06-22 16 views

Respuesta

35

tr = Tiempo de ejecución

Contiene todas las bibliotecas de tiempo de ejecución de Java. (Esencial)

46

Contiene todas las clases provistas en Java Runtime Environment.

Si no lo tiene en su ruta de clases, no tendrá acceso a ninguna de las clases que necesita usar como java.lang.String o java.io.File.

4

El tiempo de ejecución (rt.jar) contiene todas las (la mayoría de las) clases de Java que forman Java SE. Se agrega a la ruta de clases automáticamente.

7

Contiene las clases integradas de Java. rt puede significar Runtime. Sin él no podría ejecutar los programas Java :)

+0

supongo, que quiere decir, "no se podía correr ...". –

+1

Sí, por supuesto :) –

5

El rt.jar es donde residen todos los paquetes java. Por ejemplo, si un archivo de clase llama al paquete java.util, entonces la JVM puede buscarlo dentro de rt.jar, lo que permite que se ejecute correctamente.

En una nota al margen: No juegues con eso.

10

La compilación cruzada es un caso en el que tiene que usarla explícitamente.

P. ej., Si tiene Java 8 y quiere compilar Java 7 y rechaza las extensiones de Java 8. Lo que podría intentar:

javac -source 1.7 Main.java 

Pero entonces javac va a decir: warning: [options] bootstrap class path not set in conjunction with -source 1.7, ya que podría generar errores co compilar contra una versión diferente del JCL.

lo que sería necesario para establecer rt.jar con:

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

Esta fue preguntado en: warning: [options] bootstrap class path not set in conjunction with -source 1.5

7

rt.jar es sinónimo de tiempo de ejecución y JAR contiene las clases de arranque, me refiero a todas las clases de Core API de Java He descubierto que muchos programadores de Java no saben qué es rt.jar? y a menudo se confunde con el rol del archivo rt.jar o por qué usamos el archivo rt.jar en Java? No es sorpresa, el nombre es un poco críptico.

Este archivo siempre reside en el directorio lib de JRE, al menos en Windows y Linux. En MacOSX reside en una ubicación diferente y también tiene un nombre diferente, es decir, classes.jar, pero eso es solo anterior a JDK 1.7. Desde el lanzamiento de Java 7, Apple ha dejado de distribuir Java y si se instala por separado, tendrá el mismo nombre que rt.jar.

Muchos desarrolladores piensan incluir sus clases dentro de rt.jar para resolver problemas relacionados con classpath, pero esa es una mala idea. Nunca debe estar jugando con rt.jar, contiene archivos de clase que JVM confía y cargados sin estrictas comprobaciones de seguridad para otros archivos de clase.

2

Contiene todas las clases estándar de JDK. Durante el proceso de carga de clases en JVM, este es el primero que se carga y lo hace el cargador de clases de arranque, principal de todos los cargadores de clases.

Puede comprobarlo usted mismo mediante la compilación de un programa en Java con esta opción:

javac -verbose:class program.java 

el fin de ver la secuencia de la clase cargada.

muestra:

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