首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我找不到rt.jar中com.sun.*类的API文档?

您好!您提到的问题是关于Java中的rt.jar中的com.sun.*类的API文档。

rt.jar是Java运行时库,它包含了Java标准库和一些扩展类。com.sun.*类是Java中的扩展类,它们不是Java标准库的一部分,因此它们的API文档并不会像Java标准库那样被广泛使用和传播。

如果您想要查找com.sun.*类的API文档,可以尝试以下方法:

  1. 在Java官方文档中查找。Java官方文档中有一些关于com.sun.*类的文档,但是这些文档可能并不完整,也可能会有一些错误。
  2. 在开源社区中查找。有些开源社区可能会提供关于com.sun.*类的API文档,但是这些文档的质量和可靠性可能会有很大的差异。
  3. 在Java源代码中查找。Java源代码中包含了com.sun.*类的实现,您可以通过阅读源代码来了解这些类的API。

需要注意的是,com.sun.*类并不是Java标准库的一部分,因此它们的实现和API可能会因为不同的JVM和Java版本而有所不同,因此在使用这些类时需要特别小心,以避免出现不可预测的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Javac命令使用ct.sym文件约束可使用

API,可能会在未来版本删除 private JPEGCodec jpegCodec; ^ TestCtSymJdk6NotPass.java:5: 找不到符号 符号...在使用javac命令进行编译代码时,默认使用该文件进行编译时class检查和链接,而不是使用rt.jar。 该文件保存了JDK建议使用描述信息。com.sun.*包和sun....*包,以及新jdk.*都不是OpenAPI,是JDK内部私有,这些接口可能在之后版本变动,也不保证平台移植性。 事实上,JDK提供Public API,仅有三个包:java....它们是官方支持公共接口(Official、Supported、Public )。 ct.sym文件是一个zip压缩包,它里面包含了部分rt.jar。 ?...ct.sym文件都是简单空函数,不包含函数体,所以非常小。 ? ct.sym如果没有该类,则会出现ClassNotFound错误。

2K41
  • Java 核心库一览

    为什么叫运行时呢? 因为它包含了所有已编译文件,包括引导以及来自核心 Java API 所有,是 Java 运行时环境中所有核心 Java 集合。...如果类路径没有包含 rt.jar,就无法访问 java.lang.String,java.util.ArrayList 和 Java API 所有其他。...这样做好处就是,不需要做太多基本安全检查,提升了性能。 有朋友可能会问,自己定义路径和 rt.jar 冲突会发生什么呢?会不会加载自己定义呢?...这时候可以将我编译,并附带一个文档,告诉你我怎么使用,有哪些方法,你只要按照文档说明来调用就可以。既节省了你编码实现时间,也保护了版权。...Java API 也有说明文档,比如 Java SE 8:https://docs.oracle.com/javase/8/docs/api/index.html 常用 API 介绍 Java 核心库中常用

    1.1K10

    java包分类包括java.*,sun.*

    .* 也是java标准一部分,但是没有包含在标准库,一般属于标准库扩展。通常属于某个特定领域,不是一般性api。 ...此上两者都属于java标准库,公有的API,遵循java平台规范, 3. com.sun.* 是sunhotspot虚拟机java.* 和javax.*实现。...4. org.* 是由企业或者组织提供java库,大部分不是sun公司提供,同com.sun.*,不具备向后兼容性,会根据需要随时增减。...*包: 1、不是API公开接口一部分,调用sun包程序并不能确保工作在所有Java平台上,不同操作系统实现可能不相同。 2、不同jdk版本sun包也可能不定期变化,因此sun....*包没有提供API文档及源码。 不建议使用

    2.3K20

    带你搞懂双亲委派机制

    这个加载器主要是去加载你在本机配置环境变量 Java_Home/jre/lib 目录下核心API,如rt.jar ? 2)扩展加载器(Extension ClassLoader)。...为什么提示在java.lang.String找不到main方法呢,这明明不是定义了吗?其实,问题关键就在于加载遵循双亲委派机制。 加载器有以下这样层次关系: ?...当一个在加载时候,都会先委派它父加载器去加载,这样一层层向上委派,直到最顶层启动加载器。如果顶层无法加载(即找不到对应),就会一层层向下查找,直到找到为止。这就是双亲委派机制。...由于,rt.jar包下String确实没有main方法,所以才会有以上报错信息。 我们可以试想一下,如果没有双亲委派机制存在,那我这段代码是不是就可以执行成功了。...如果这样的话,岂不是说明可以随意覆盖rt.jar(如String,Integer等)。这样的话将会使程序陷入混乱,Java核心包安全也无法保证。

    1K20

    面试官问:可以自定义String吗?麻了~

    故事:昨天一位朋友在面试中被问到:如果自定义个String行不行? 你是否知道可不可以?如果回答说不可以,那面试官可能会问为什么不可以?...错误: 在 java.lang.String 找不到 main 方法, 请将 main 方法定义为: public static void main(String[] args) 否则 JavaFX...应用程序必须扩展javafx.application.Application 错误信息里面提到在 java.lang.String 找不到 main 方法,这不是有毛病吧,这String里明细有...自定义加载器可以根据开发人员实际需求加载不同来源文件,例如从网络、数据库等载入。 那上面为什么会报错找不到main方法呢? 这里就得聊聊委派机制,在JVM中有个双亲委派模型。.../lib 目录下核心Java,刚好在这个lib目录下有个rt.jar,同时,在这个jar包里也有个java.lang.String,所以,就优先加载了rt.jarString了,这个里确实也没有

    10810

    1.2 双亲委派机制及其原理

    上面这个图就是双亲委派机制图. 什么意思呢? 比如: 现在有一个自定义java.lxl.jvm.Math....这时候, 我们都知道, Math自己定义, 引导加载器不可能有, 所以, 他就会让扩展加载器去加载, 扩展加载器中有没有呢?...1.3 为什么要有双亲委派机制? 两个原因: 1. 沙箱安全机制, 自己写java.lang.String.class不会被加载, 这样便可以防止核心API库被随意修改 2. 避免重复加载....我们来看下面的案例 加入, 在本地定义了一个String, 包名是java.lang.String. 也就是是rt.jar包下String包名是一样哈. ?...但是这个java.lang.String是rt.jar, 不是我们自定义, 加载了rt.jarjava.lang.String以后, 去找main 方法, 没找到.....结果就跑出了找不到

    43910

    读《深入理解Java虚拟机》解决实际问题及总结JDK和JVM整体架构

    其实,倒不这么认为,至少在看完一遍这本书后,有一种醍醐灌顶感觉,很多模糊知识和概念也变得清晰起来。...既然原因是出在FtpUtil初始化上,那么从FtpUtil这个着手分析,异常信息显示找不到ServletOutputStream定义,而在引入包"javax.servlet.http.HttpServletResponse...基于以上分析,将一个servlet-api.jar包拷贝到JRE/lib/ext路径下,这样,扩展加载器能够加载拷贝jar包ServletOutputStream,应用程序加载器就不会再去加载...从上图也可以看出,为什么我们不能够自己定义一些与JDK名、路径完全一样来覆盖JDK(如String),因为这些rt.jar,由启动加载器加载,我们自己定义同名同路径根本没有加载机会...(仅按照文件名识别,如rt.jar,名字不符合库即使放到lib目录也不会被加载)库加载到虚拟机内存

    64300

    JVM双亲委派机制

    ("是自定义String静态代码块"); } } 在一个测试中加载String,看看加载String是JDK自带,还是我们自己编写 public class StringTest...System.out.println("是自定义String静态代码块"); } //错误: 在 java.lang.String 找不到 main 方法...*下由BootStrap ClassLoader加载,BootStrap ClassLoader发现核心Api没有自定义,则加载失败。...java.lang开头) 4.沙箱安全机制 自定义String时:在加载自定义String时候会率先使用引导加载器加载,而引导加载器在加载过程中会先加载jdk自带文件(rt.jar...java.lang.String.class),报错信息说没有main方法,就是因为加载rt.jarString

    32830

    深入浅出Java加载机制使用自己类别载入器

    lib目录下.jar档案(例如rt.jar载入。...可以使用System.getProperty("sun.boot.class.path")来获取sun.boot.class.path中指定路径,例如在笔记本显示是以下路径: C:\Program...image.png 我们可以很熟悉这个结构了,可以确认Bootstrap Loader加载器加载基本是java api内容,基础库都在这里。...可以使用System.getProperty("java.ext.dirs")來显示java.ext.dirs中指定路径,例如在笔记本显示是以下路径: C:\Program Files\Java...由于Bootstrap Loader在它路径设定(sun.boot.class.path)下找不到,所以由ExtClassLoader来寻找,而 ExtClassLoader在它路径(java.ext.dirs

    72520

    深入分析Java ClassLoader原理

    二、Java默认提供三个ClassLoader BootStrap ClassLoader:称为启动加载器,是Java加载层次中最顶层加载器,负责加载JDK核心库,如:rt.jar、resources.jar...考虑到安全因素,我们试想一下,如果不使用这种委托模式,那我们就可以随时使用自定义String来动态替代java核心api定义类型,这样会存在非常大安全隐患,而双亲委托方式,就可以避免这种情况,...四、定义自已ClassLoader 既然JVM已经提供了默认加载器,为什么还要定义自已加载器呢?...因为Java中提供默认ClassLoader,只加载指定目录下jar和class,如果我们想加载其它位置或jar时,比如:要加载网络上一个class文件,通过动态加载到内存之后,要调用这个方法实现业务逻辑...如没有特殊要求,一般不建议重写loadClass搜索算法。下图是APIClassLoaderloadClass方法: ?

    70320

    2.双亲委派机制详细解析及原理

    写在前面的话:为什么要研究加载过程?为什么要研究双亲委派机制? 研究加载过程就是要知道加载时候使用了双亲委派机制。...这时候, 我们都知道, Math自己定义, 引导加载器不可能有, 加载失败,所以, 他就会去加载这个。...我们想一想, 在ExtClassLoader路径里面能找到这个么?显然是找不到, 因为这个使我们自己定义. 他们他一定执行return null....我们来看下面的案例 加入, 在本地定义了一个String, 包名是java.lang.String. 也就是是rt.jar包下String包名是一样哈....但是这个java.lang.String是rt.jar, 不是我们自定义, 加载了rt.jarjava.lang.String以后, 去找main 方法, 没找到.....结果就抛出了找不到

    65841

    JavaclassLoader浅析.

    javafx.application.Application 为什么呢,明明在Long方法定义了main方法,为什么说main方法没有定义呢?...你可以认为每一个Class对象拥有磁盘上那个.class字节码内容,每一个class对象都有一个getClassLoader()方法,得到是谁把从.class文件加载到内存变成Class对象。...),如rt.jar(runtime)、i18n.jar等,这些是Java核心。...所以这个时候根加载器就去加载这个,可在%JAVA_HOME%\jre\lib下,它找不到com.wangmeng.Test这个,所以他告诉他子类加载器,找不到,你去加载吧,子类扩展加载器去%...JAVA_HOME%\lib\ext去找,也找不着,它告诉它子类加载器 AppClassLoader,找不到这个,你去加载吧,结果AppClassLoader找到了,就加到内存,并生成Class

    1.4K100

    面试官:什么是双亲委派模型?

    1.1 启动加载器 启动加载器(Bootstrap ClassLoader)是由 C++ 实现,它是用来加载 \jre\lib\rt.jar 和 resources.jar...+ String.class.getClassLoader()); } } 复制代码 以上程序执行结果如下图所示: 问题来了,为什么打印不是“Bootstrap ClassLoader...: 2.双亲委派模型 双亲委派模型执行流程是这样: 1、当加载一个时,会先从应用程序加载器缓存里查找相应,如果能找到就返回对象,如果找不到就执行下面流程; 2、在扩展加载器缓存查找相应...,如果能找到就返回对象,如果找不到就继续下面流程; 3、在启动加载器查询相应,如果找到就返回对象,如果找不到就继续下面流程; 4、在扩展加载器查找并加载,如果能找到就返回对象,并将对象加入到缓存...,如果找不到就继续下面流程; 5、在应用程序加载器查找并加载,如果能找到就返回对象,并将对象加入到缓存,如果找不到就返回 ClassNotFound 异常。

    34310

    1.加载器

    1.1 启动加载器 启动加载器(Bootstrap ClassLoader)是由 C++ 实现,它是用来加载 \jre\lib\rt.jar 和 resources.jar...+ String.class.getClassLoader()); } } 以上程序执行结果如下图所示: 问题来了,为什么打印不是“Bootstrap ClassLoader”而是...: 2.双亲委派模型 双亲委派模型执行流程是这样: 1、当加载一个时,会先从应用程序加载器缓存里查找相应,如果能找到就返回对象,如果找不到就执行下面流程; 2、在扩展加载器缓存查找相应...,如果能找到就返回对象,如果找不到就继续下面流程; 3、在启动加载器查询相应,如果找到就返回对象,如果找不到就继续下面流程; 4、在扩展加载器查找并加载,如果能找到就返回对象,并将对象加入到缓存...,如果找不到就继续下面流程; 5、在应用程序加载器查找并加载,如果能找到就返回对象,并将对象加入到缓存,如果找不到就返回 ClassNotFound 异常。

    36030

    java教程系列二:Java JDK,JRE和JVM分别是什么?

    它扫描JRE lib文件夹rt.jar。 如果找不到,那么extension加载器将在jre \ lib \ ext包搜索文件。...如果还找不到,则应用程序加载器将在系统 CLASSPATH环境变量搜索所有Jar文件和 任何加载程序找到了,则由该类加载器加载;否则抛出ClassNotFoundException。...Java HotSpot服务器虚拟机使用DLL文件。 Java运行时环境使用代码库,属性设置和资源文件。例如rt.jar和charsets.jar。...javadoc –文档生成器,可从源代码注释自动生成文档 jar –存档程序,它将相关库打包到一个JAR文件。...policytool –策略创建和管理工具 xjc – XML绑定Java API(JAXB)API一部分。

    76410

    一次对JDK进行减肥记录

    毕竟并非JDK中所有的Java都需要用到,可以将那些不需要Java文件以及一些文档东西删除掉.于是在google了一下,已经有人这么干过了,参考: https://blog.csdn.net/...xuweilinjijis/article/details/77527117 jdk1.8运行环境精简瘦身 实践 根据搜索到资料,结合自身实际需求,以满足程序能够正常运行最低需求,对jdk-...如下是对JDK进行精简实践具体步骤: 删除运行程序并不需要文档文件及目录 jdk1.8.0_161/javafx-src.zip jdk1.8.0_161/src.zip jdk1.8.0_161...jdk1.8.0_161/jre/lib/oblique-fonts jdk1.8.0_161/jre/lib/deploy.jar jdk1.8.0_161/jre/lib/locale/ 删除jar包不需要...精简实现并不涉及任何技术难点,也并非必要.在自己实际场景是因为触及到需要大量拷贝JDK文件导致消耗时间太长这个痛点了,所以才考虑这么做.另外,虽然需要对程序进行批量部署,但是由于程序很简单,并未使用比较复杂自动化部署工具

    1.6K20

    JVM:第一章:加载机制深度解析

    ("加载B构造方法"); } } 执行结果: 加载TestDynamicLoad静态代码块 加载A静态代码块 加载A构造方法 执行main方法代码 加载器 ?...引导加载器:负责加载支撑JVM运行位于JRElib目录下核心库,比如rt.jar、charsets.jar等 扩展加载器:负责加载支撑JVM运行位于JRElib目录下ext扩展目录...通俗说: 当我们需要加载某个时会先委托父加载器寻找目标找不到再委托上层父加载器加载,如果所有父加载器在自己加载路径下都找不到目标,则在自己加载路径查找并载入目标。...为什么要设计双亲委派机制? 沙箱安全机制:自己写java.lang.String.class不会被加载,这样便可以防止核心API库被随意篡改 。...String"); } } 执行结果: 错误: 在 java.lang.String 找不到 main 方法, 请将 main 方法定义为: public static void

    72730

    (三)组件治理之编译期检查

    oracle 关于 Removed rt.jar and tools.jar 部分,所以,这里只好退而求其次,使用 jdk8 rt.jar 参与编译。...这里有一个细节点,在方法 Code 字段与方法调用,在 owner 找不到情况还要继续从他与接口继续查找,因为调用字段与方法有可能在父。...unsolved 为 androidx.compose.ui:ui:1.3.0 依赖使用到 、字段和方法在整个依赖关系中都找不到 3、生成组件引用关系图一部分: image.png 5、一些小插曲...在 Kotlin ,接口继承接口时,也是可以实现父抽象方法,效果看起来跟 Java default 类似,示例如下: Dog 接口实现了父 IAnimal 接口抽象 run 方法,代码上来看并没有问题...Decompile 看下具体原因了: Kotlin 接口实现方法居然是通过桥接做到,Dog run 方法仍然是抽象方法,在 Kotlin 这种情况下,没办法通过遍历来检查抽象方法有无实现

    20130

    java动态编译文件并加载到内存

    } catch (InterruptedException e) { e.printStackTrace(); } }     第二种:使用jdk自带rt.jar...javax.tools包提供编译器 /** * 编译java * 使用rt.jarjavax.tools包提供编译器 * @param name 全限定包名...并得到该类class对象 /** * 动态编译一个java源文件并加载编译生成class * @param name 全限定包名 不带后缀 例如com.test.Notice.../** * 如果父加载器中都找不到name指定, * 就会调用这个方法去从磁盘上加载一个 * @param name 全限定包名 不带后缀 例如com.test.Notice...* 使用rt.jarjavax.tools包提供编译器 * @param name 全限定包名 不带后缀 例如com.test.Notice 而不要写成com.test.Notice.java

    3.1K20
    领券