加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 为什么rt.jar不属于类路径系统属性?

发布时间:2020-12-15 04:20:18 所属栏目:Java 来源:网络整理
导读:我使用系统属性 java.class.path来查找属于类路径的所有jar和目录.在第一个sigth,这似乎很好.但仔细观察后,我发现当我使用gradle执行程序时,此类路径中没有rt.jar.当从IntelliJ IDEA执行’t.jar’是该类的一部分. 为什么IntelliJ和Gradle之间的类路径以这种
我使用系统属性 java.class.path来查找属于类路径的所有jar和目录.在第一个sigth,这似乎很好.但仔细观察后,我发现当我使用gradle执行程序时,此类路径中没有rt.jar.当从IntelliJ IDEA执行’t.jar’是该类的一部分.

为什么IntelliJ和Gradle之间的类路径以这种方式不同?

需要明确的是:rt.jar中包含的所有类都可以正常加载,这只是令我困惑的属性.

解决方法

rt.jar不需要在类路径中,因为它已经在bootclasspath中.
从类路径中删除它是安全的.

您可以参考此Oracle doc:http://docs.oracle.com/javase/8/docs/technotes/tools/findingclasses.html

Java Launcher如何查找Bootstrap类
Bootstrap类是实现Java 2平台的类. Bootstrap类位于rt.jar和jre / lib目录中的其他几个jar文件中.这些归档由bootstrap类路径的值指定,该路径存储在sun.boot.class.path系统属性中.此系统属性仅供参考,不应直接修改.

您不太可能需要重新定义引导类路径.非标准选项-Xbootclasspath允许您在需要使用不同核心类集的那些罕见的cicrcumstances中执行此操作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读