微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我使用系统属性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中执行此操作.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐