web应用程序如何验证。jar或类已经由Java中的类加载器加载
。。我有一个应用程序(a.war),它有一个插件系统,每个插件都是一个插件。用它的瓶子装瓶子。jar依赖项。 在webapp中,通过一个管理web界面,使用类加载器“加载”插件。jar及其依赖项。 但问题是,例如,2个插件A和B可能有一个或多个公共依赖项(commons-io.jar、commons-collection.jar等等)。。。所以通常情况下,我不应该加载超过一次。jar已经由另一个插件加载,或者已经存在于webapp中->;WEB-INF/lib/ 所以,我想知道是否有一种方法可以避免每次加载另一次。已经通过webapp或其他插件加载的jar 如果可能的话,我必须怎么做
实际上,不管有什么解决方案,我只是想避免类加载器问题
注意:每个插件都是一个插件。zip文件,其中包含以下体系结构
插件名/
- code/
- A.class
- B.class
- ...
- lib/
- commons-io.jar
- log4j.jar
- ....
- description.xml
- version.txt
每个。目录code/中的类文件由类加载器加载。插件的lib/目录中的jar也被加载
但通常情况下,我不应该重新加载中的类。jar“commons io.jar”如果它已经存在的话
我希望我已经足够清楚了,提前感谢你的关注和帮助
# 1 楼答案
如果我的理解正确,您想知道Java文件或jar是否已加载,如果未仅加载,那么您想加载它吗?我得到的一个解决方案是,您可以检查类路径是否存在jar
# 2 楼答案
如果使用
-verbose:class
JVM选项,与Sun Microsystems兼容的JVM也会在加载时显示类。但是,您无法通过编程方式访问此信息强># 3 楼答案
要跟踪JVM加载了哪些类,可以添加
在启动JVM之前,请先查看您的选项
它将创建一个输出,如