Java系统包存储在哪里?

23

我想查看所有的Java包。这些包在我的电脑上存储在哪里?有人可以帮忙吗?我在JDK文件夹中搜索,发现了awt.dll和其他一些内容,但只是其中的一部分。我能否查看全部包?


1
你正在处理哪个操作系统? - Lance Roberts
9个回答

32

如果你想获取标准安装的包列表,只需访问Javadocs并查看左上角。

如果你想查看.class文件,它们位于JRE目录下的lib\rt.jar中(.jar.zip相同,因此您可以使用任何能够打开zip文件的工具来打开它)。

如果你想查看源代码,请查看JDK目录下的src.zip。如果没有找到,可能是在安装JDK时选择未安装源代码。

请注意,包在磁盘上表示为文件夹,因此您可能会对所见到的内容感到有些失望。


23
自Java 9开始,rt.jar已经被移除

以前存储在lib/rt.jarlib/tools.jarlib/dt.jar和其他各种内部JAR文件中的类和资源文件现在以更高效的格式存储在lib目录下的实现特定文件中。这些文件的格式未指定并且可能会在不通知的情况下发生更改。

可以使用以下方式访问System类文件

FileSystem fs = FileSystems.getFileSystem(URI.create("jrt:/"));
Path objClassFilePath = fs.getPath("modules", "java.base", "java/lang/Object.class");

如何在Python中调用此函数?我们有一个Python脚本,其中使用了rt.jar,在升级Java后,我们遇到了错误。 - Anuj Mittal

6
假设您所说的是包括类库(如java.lang.*和java.util.*)的软件包,它们存放在安装Java Runtime Environment(JRE)的目录下的“lib”文件夹中。
在Windows上,路径可能类似于这样:
C:\Program Files\Java\j2re1.4.2_12\lib

在这里,你应该能够看到像rt.jar这样的文件,其中包含了Java核心类,以及charsets.jar,它包含了许多EBCDIC和CJK语言的扩展编码支持。

在一个并行的bin目录中,有与Java相关的可执行文件和实用程序。

如果你安装了Java开发工具包(JDK),在你找到的libs目录的上一级目录中,你可能会发现一个src.jar文件。它可以使用jar.exe工具或标准的zip式工具进行解压缩,并包含标准类库的Java源代码。

一些Java的功能,例如虚拟机本身,是特定于机器的,并且将成为某些DLL或EXE文件的一部分。


5
你可以尝试解压rt.jar文件,通常可以在$JAVA_HOME/lib/rt.jar路径下找到。如果你想获取的是所有JDK类文件,那么这个jar文件应该包含它们。

3

Windows操作系统:

对于压缩编译的Java程序包(Java类库,JCL):程序文件/java/jdk/jre/lib/rt.jar

对于程序包源代码:程序文件/java/jdk/src.zip

我们可以使用任何解压软件来查看它们的内容。


1

正如@VenkataRaju所回答的那样,我想再提出两点:

  1. 我们有./bin、./conf、./include、./jmods、./legal、./lib
  2. 在Java 11中,我们可以在./lib/classlist和./lib/src.jar中看到所有的类列表

1

我的JDK 1.6.0_13有一个src.zip文件包含所有源代码。可以看一下。


0

rt.jar自Java 9开始已被删除。因此,要查找JCL的源代码,您应该:

sudo find / -name java.base

0
在JDK版本18.0.1.1中,所有的包都存在于jrt-fs.jar文件中。
路径:jdk-18.0.1.1\lib\jrt-fs.jar。
在这个jrt-fs.jar文件中,所有预定义的类都存在于包路径中,比如java\io表示java.io,java\lang表示java.lang,java\util表示java.util,java\sql表示java.sql等等。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接