我试图获取类路径(项目已加载的所有库),目前我正在尝试使用此语句:
ClassLoader jre = JREvaluator.class.getClassLoader();
我得到的是:
weblogic.utils.classloaders.GenericClassLoader @ 109774a
从这里开始,如果我使用 WebLogic ,我怎样才能获得类路径。我已经在互联网上使用了很多选项,但是这个类不允许使用某些方法: URLClassLoader.getURLs(),因为它属于Oracle。
答案 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。