gpt4 book ai didi

java - 确定从何处加载特定类

转载 作者:行者123 更新时间:2023-12-01 22:11:20 25 4
gpt4 key购买 nike

有没有办法确定在运行时从哪里加载特定类?

我们正在使用一个应用程序服务器,它有几个地方可以放置外部库。现在存在的问题是,例如,多个不同版本的 apache-commons 库被放置在不同的位置,而没有人能够真正分辨出这些 JAR 文件中的哪个是特定 Java 类中的源代码。

有没有办法询问类加载器实际上是从哪里加载类的?具体的JAR文件是什么?

最佳答案

此信息存储在类 ProtectionDomain 中。您可以使用以下方式访问类的保护域:

Object o = new Object();
ProtectionDomain protection = o.getClass().getProtectionDomain();

在this对象内部,有一个名为getCodeSource()的方法返回 CodeSource包含它来自的位置的 url:

URL loadedFile = protection.getCodeSource().getLocation();

如果类加载器在加载时未提供此信息,则此 url 可以为 null。

关于java - 确定从何处加载特定类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35481881/

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