【发布时间】:2020-04-13 10:32:30
【问题描述】:
我使用了 JAVA_OPTS -Xlog:class+load=debug(在 Tomcat 9 startup.bat 中),虽然它显示了类名,但它显示源为 source: __JVMDefineClass__。有什么方法可以让我知道 Jar 的名称,就像它在 JAVA 8 中显示的那样?
例如
在 JAVA 8 中:[Loaded java.lang.Object from C:\Program Files\Java\jdk1.7.0_04\jre\lib\rt.jar],但是,
在 JAVA 11 中:com.fasterxml.jackson.databind.util.ClassUtil$Ctor source: __JVM_DefineClass__
更新:我正在使用 TomeePlus。
【问题讨论】:
-
'JVM_DefineClass' 字符串是显示为所有其他类的来源还是仅显示为这个?
-
__JVM_DefineClass__显示用于除从 Tomcat 库加载的类之外的所有类。对于从 tomcat lib 文件夹加载的类,它会显示正确的 lib 名称和路径。 -
我也看到Tomee的TempClassLoader加载的类有这样的源码,但是URLClassLoader加载的类有jar名。
标签: java classloader java-11 tomcat9 java-opts