gpt4 book ai didi

java - 如果有重复文件,Java 中的类加载器如何知道要加载哪个文件资源?

转载 作者:行者123 更新时间:2023-12-02 05:03:59 25 4
gpt4 key购买 nike

如果这个问题的答案很简单,我提前道歉。看来我对Java中的类加载了解不够。

假设我的应用程序中有一个名为“properties”的文件。我的应用程序使用外部 JAR,在该 JAR 内,还有一个名为“properties”的文件。

问题:

如果外部 JAR 文件尝试使用 getClass().getClassLoader().getResourceAsStream("properties") 打开该文件,为什么它不从我的应用程序加载该文件。并不是我想要它,但是在这种情况下,类加载器不是加载我的应用程序的吗?我认为该方法将使用绝对路径来查找资源。外部 JAR 中的类是否使用不同的类加载器加载?

最佳答案

类和资源的类加载机制是相同的(但找到的字节的处理方式不同)。

参见http://docs.oracle.com/javase/tutorial/ext/basics/load.html以获得官方解释。

这是实际请求的第一个类加载器,它拥有获胜的资源。如果类加载器没有其资源,请使用父类重试。

(请注意,对于 Web 应用程序 - WAR 文件 - 故意在首先询问哪个文件方面略有不同)。

关于java - 如果有重复文件,Java 中的类加载器如何知道要加载哪个文件资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27974652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com