rt.jar的必要性是什么?
它包含Java Runtime Environment中提供的所有类.
如果在类路径中没有它,则无法访问需要使用的任何类,如java.lang.String或java.io.File.
rt =运行时间
它包含所有Java运行时库.(必要)
交叉编译是一种必须明确使用它的情况.
例如,如果您使用的是Java 8,并希望在拒绝Java 8扩展时编译Java 7.所以你可以尝试:
javac -source 1.7 Main.java
但后来javac
会说:warning: [options] bootstrap class path not set in conjunction with -source 1.7
,因为它可能会产生错误co编译对不同版本的JCL.
所以你需要设置rt.jar
:
javac -source 1.7 -bootclasspath /usr/lib/jvm/java-7-oracle/jre/lib/rt.jar Main.java
这被问到:警告:[options] bootstrap类路径未与-source 1.5一起设置
rt.jar代表运行时JAR并包含引导类,我的意思是来自Core Java API的所有类.我发现很多Java程序员都不知道什么是rt.jar?并经常混淆rt.jar文件的作用或为什么我们在Java中使用rt.jar文件?毫不奇怪,这个名字有点神秘.
此文件始终位于JRE的lib目录中,至少在Windows和Linux中.在MacOSX中,它位于不同的位置,并且具有不同的名称,即classes.jar,但这仅在JDK 1.7之前.从Java 7版本开始,Apple已停止分发Java,如果单独安装,它将与rt.jar同名.
许多开发人员都认为将他们的类包含在rt.jar中以解决与类路径相关的问题,但这是一个坏主意.你永远不应该弄乱rt.jar,它包含JVM信任的类文件,并且加载时没有对其他类文件进行严格的安全检查.
它包含Java内置类.rt
也许代表着Runtime
.没有它你就无法运行Java
程序:)
rt.jar是所有java包所在的位置.例如,如果类文件调用java.util包,那么JVM可以在rt.jar中查找它,从而使其能够正确运行.
旁注:不要乱用它.