Java 系统包存储在哪里?

问题描述 投票:0回答:10

我想查看所有的java包。我的机器中的包存储在哪里?任何人都可以帮忙。我在 jdk 文件夹中搜索并找到了 awt.dll 和所有内容。但这只是少数。我可以看到全部吗?

java package file-structure
10个回答
32
投票

如果您想要标准安装中的软件包列表,只需转到 Javadocs 并查看左上角。

如果您想查看 .class 文件,它们位于 JRE 目录中的

lib\rt.jar
中(
.jar
.zip
相同,因此您可以使用任何可以打开 zip 文件的工具打开它)。

如果你想查看源代码,请查看JDK目录中的

src.zip
。如果不存在,您可能在安装 JDK 时选择不安装它。

请记住,包在磁盘上表示为文件夹,因此您可能会对所看到的内容感到有点失望。


23
投票

从 Java 9 开始

rt.jar
删除

以前存储在

lib/rt.jar
lib/tools.jar
lib/dt.jar
中的类和资源文件以及各种其他内部 JAR 文件现在以更有效的格式存储在 lib 目录中的特定于实现的文件中。这些文件的格式未指定,如有更改,恕不另行通知。

现在可以访问系统类文件,如下所示

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

6
投票

假设您指的是包含 java.lang.* 和 java.util.* 等类库的包,这些包位于 Java 运行时环境 (JRE) 安装位置下的“lib”目录中。

在 Windows 上,它会是这样的:

C:\Program Files\Java\j2re1.4.2_12\lib

在那里,您应该看到像

rt.jar
这样的文件,其中包含核心 Java 类,以及
charsets.jar
,其中包含许多对 EBCDIC 和 CJK 语言的扩展编码支持。

并行

bin
目录中是 Java 和相关实用程序的可执行文件。

如果您已经安装了 Java 开发工具包 (JDK),在上面找到库的目录中您可能会找到一个

src.jar
文件。可以使用
jar.exe
实用程序或标准 zip 式工具对其进行解压,并包含标准类库的 Java 源代码。

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


5
投票

您可以尝试解压/解压 rt.jar,它通常在

$JAVA_HOME/lib/rt.jar
中可用。 jar 文件应该包含所有
JDK
的类文件,如果这就是您要问的。


3
投票

Windows:

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

软件包来源:program files/java/jdk/src.zip

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


1
投票

我的 JDK 1.6.0_13 有一个包含所有源代码的 src.zip。看看吧。


1
投票

正如@VenkataRaju 的回答,我想再补充两点

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

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等..


0
投票

正如一些用户已经提到的,可以在以下位置找到它: /Java/jdk-21/lib/src.zip/

终端需要提升至管理员模式:Win

示例:Java File 方法在 IO 包下。

/Java/jdk-21/lib/src.zip/java.base/java/io

© www.soinside.com 2019 - 2024. All rights reserved.