使用websphere liberty或apache tomcat8或在java代码中如何打印第三方或第一方类的完整路径

lnlaulya  于 2023-02-15  发布在  Java
关注(0)|答案(1)|浏览(103)

我试着查看第一方类和第三方类从哪里加载,比如说websphere liberty和apache tomcat.当我使用-verbose:class时,我看到了一堆路径,但没有看到有问题的路径.看起来像是liberty相关的路径,但不是要查找的第三方路径。
例如,假设这个类只是org/apache/logger/Logger.class,那么这个类在哪里?
我尝试了Reflections库,确定这是否是正确的用例。
我尝试了下面这些方法,没有找到要找的东西。类在编译时就在那里了。也没有找到任何第三方的类。

final ClassLoader loader = ServletVers2.class.getClassLoader();
    System.out.println(loader.getResource("com/ca/services/servlet/ServletVers2.class"));
    System.out.println(loader.getResource("com/ca/apps/shared/utils/BuildVersion.class"));

    final ClassLoader classloader2 = ClassLoader.getSystemClassLoader();
    final ClassLoader classloader3 = ClassLoader.getSystemClassLoader().getParent();

    System.out.println(loader.getResource("org/apache/logging/log4j/LogManager.class"));
    System.out.println(loader.getResource("org/apache/log4j/Logger.class"));

    System.out.println(classloader2.getResource("org/apache/logging/log4j/LogManager.class"));
    System.out.println(classloader2.getResource("org/apache/log4j/Logger.class"));

    System.out.println(classloader3.getResource("org/apache/logging/log4j/LogManager.class"));
    System.out.println(classloader3.getResource("org/apache/log4j/Logger.class"));
    
    Reflections reflections = new Reflections("com.apps.shared.utils.BuildVersion", new SubTypesScanner(false));
guicsvcw

guicsvcw1#

根据评论,这应该会起作用。这不完全是我想要的,但会继续下去。
或者,也可以使用以下代码:org.apache/log4j/logger.class。

相关问题