2015-04-27 47 views
0

我试图让classpath中(所有,该项目已加载库),此刻我正在使用此声明尝试:如何在WebLogic中使用ClassLoader知道EAR中的类路径?

ClassLoader jre = JREvaluator.class.getClassLoader(); 

我得到的是:

weblogic.utils.classloaders.GenericClassLoader @ 109774a 

从这里,如果我正在使用WebLogic,如何获得类路径。我已经使用了许多通过互联网找到的选项,但是这个类不允许使用以下方法:URLClassLoader.getURLs(),因为它属于Oracle。

回答

0

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

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

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

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

对于更多类相关的JVM参数。

+0

您的解释很好,谢谢。但是,在加载WebLogic时,我没有关注java参数,因为我没有访问权限。我已经找到了答案。问候, –

0

好吧,有必要从weblogic.utils.classloaders.GenericClassLoader查找原代码,我发现这个方法:

public String getClassPath() { ... } 

随着该方法它真的很容易得到的所有内部罐子你的应用。

相关问题