如何在WebLogic中使用ClassLoader了解EAR中的类路径?

时间:2015-04-27 16:34:48

标签: java weblogic classpath

我试图获取类路径(项目已加载的所有库),目前我正在尝试使用此语句:

ClassLoader jre = JREvaluator.class.getClassLoader();

我得到的是:

weblogic.utils.classloaders.GenericClassLoader @ 109774a

从这里开始,如果我使用 WebLogic ,我怎样才能获得类路径。我已经在互联网上使用了很多选项,但是这个类不允许使用某些方法: URLClassLoader.getURLs(),因为它属于Oracle。

2 个答案:

答案 0 :(得分:0)

引导类加载器是Java类加载器层次结构的根。 Java虚拟机(JVM)创建引导类加载器,它加载JVM中包含的Java开发工具包(JDK)内部类和java。*包。 (例如,bootstrap类加载器加载java.lang.String。)

扩展类加载器是引导类加载器的子代。扩展类加载器加载放置在JDK的extensions目录中的所有JAR文件。这是扩展JDK而不向类路径添加条目的便捷方法。但是,extensions目录中的任何内容都必须是自包含的,并且只能引用扩展目录或JDK类中的类。

系统类路径类加载器扩展了JDK扩展类加载器。系统类路径类加载器从JVM的类路径加载类。特定于应用程序的类加载器(包括WebLogic Server类加载器)是系统类路径类加载器的子代。 有关weblogic类加载器的更多信息,请参阅下文 http://docs.oracle.com/cd/E21764_01/web.1111/e13706/classloading.htm#WLPRG285

-verbose:dynload和-verbose:class提供有关所加载类的更多信息。 https://www-304.ibm.com/support/knowledgecenter/SSSTCZ_2.0.0/com.ibm.softrt.aix32.doc/realtime/rt_standard_options.html

更多与类相关的JVM参数。

答案 1 :(得分:0)

好的,有必要从 weblogic.utils.classloaders.GenericClassLoader 查找原始代码,我找到了这个方法:

 public String getClassPath() { ... }

使用这些方法,您可以轻松获得应用程序的所有内部jar。