gpt4 book ai didi

java - JRE系统库中每个jar的作用

转载 作者:行者123 更新时间:2023-11-28 22:52:54 25 4
gpt4 key购买 nike

我用过servlet和jsp,但我只导入java基础jar。

哪个是javaEE jar?

HttpServlet依赖Tomcat的servlet-api.jar,javaEE和tomcat有什么关系? This is my structure in the project

谢谢!

最佳答案

1) rt.jar 代表运行时,包含所有为核心 Java 运行时环境编译的类文件。

2) 您必须在类路径中包含 rt.jar,否则您无法访问核心类,例如java.lang.String、java.lang.Thread、java.util.ArrayList 或 java.io.InputStream 以及来自 Java API 的所有其他类。您实际上可以通过使用 WinRAR 或 WinZip 客户端打开 rt.jar 来查看其中的内容。可以看到,它不仅包含了所有的Java API,还包含了com包中指定的内部类。

3) 在windows下,rt.jar总是在$JAVA_HOME/jre/lib下,$JAVA_HOME指的是JDK的安装目录。即使您不安装 JDK 而只安装 JRE,您也会在完全相同的位置看到它,您不会在 $JAVA_HOME/lib 目录中找到 rt.jar。顺便说一句,在 MacOSX 上它被称为 classes.jar 并且位于/System/Library/Frameworks//Classes 目录下。在下面的屏幕截图中,您可以看到 rt.jar 位于 Windows 8 中 JRE 的 lib 目录中。

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 中,这样您就可以通过键入 Ctrl + T 和类名来查看任何 JDK 类的源代码,其余的将由 Eclipse 的 Java 类型搜索功能处理。

6) 关于 rt.jar 最重要的事情之一是 JVM 知道这个 JAR 文件中的所有类,这意味着 JVM 不会在从任何其他 JAR 加载任何其他 JAR 时进行所有检查其他地方。这是由于各种性能原因而完成的,这就是为什么这些类由 Bootstrap 或原始类加载器加载的原因。不要尝试将您的类文件包含在 rt.jar 中,因为 Java 不建议这样做。它还会危及任何安全性。

7) 如果您对 Java 平台使用的不同二进制文件和 JAR 文件感到好奇,请查看此图。可以看到JDK主要有bin、lib、jre三个文件夹。 bin 目录包含所有二进制可执行文件,例如java.exe运行Java程序,javac.exe编译Java程序等。lib包含tools.jar和dt.jar。 jre 文件夹再次包含 bin 和 lib 目录。它在这个 lib 目录中 rt.jar 驻留。顺便说一下,要完整解释这些文件和文件夹的作用,请查看 Oracle 官方页面。它们非常全面且具有描述性。

enter image description here

这就是关于 Java 中的 rt.jar 文件的全部内容。现在您知道 rt.jar 的用途是什么以及为什么您不应该乱用它。您可以在 $JAVA_HOME/jre/lib 目录中找到此 JAR 文件,我鼓励您自己查看。

阅读更多:http://javarevisited.blogspot.com/2015/01/what-is-rtjar-in-javajdkjre-why-its-important.html#ixzz3xkhLYtjP

关于java - JRE系统库中每个jar的作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34890981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com