简体   繁体   English

获取lambda函数在jvm中加载的所有类的列表

[英]Get a list of all classes loaded in the jvm for a lambda function

I'm trying to find a method to see the number of classes loaded by the JVM for a lambda function. 我正在尝试找到一种方法来查看JVM为lambda函数加载的类的数量。 I have a sample code from a friend but it does not work. 我有一个朋友的示例代码,但是它不起作用。 I have the following: 我有以下内容:

java -cp my.jar -verbose:class Handler | grep Loaded 

It must be missing something because I don't have the "Loaded" classes. 它一定缺少一些东西,因为我没有“ Loaded”类。 Is "load" the replacement of "Loaded" ? “负载”是“负载”的替代吗?

The result of this is something like: 结果是这样的:

[0.179s][info][class,load] java.text.Format source: jrt:/java.base
[0.179s][info][class,load] java.text.MessageFormat source: jrt:/java.base
[0.179s][info][class,load] java.util.Locale$Category source: jrt:/java.base
[0.179s][info][class,load] java.util.Locale$1 source: jrt:/java.base
[0.180s][info][class,load] java.text.FieldPosition source: jrt:/java.base
[0.180s][info][class,load] java.util.Date source: jrt:/java.base

I was expecting something like: 我期待着这样的事情:

[Opened /usr/java/j2sdk1.4.1/jre/lib/rt.jar]
[Opened /usr/java/j2sdk1.4.1/jre/lib/sunrsasign.jar]
[Opened /usr/java/j2sdk1.4.1/jre/lib/jsse.jar]
[Opened /usr/java/j2sdk1.4.1/jre/lib/jce.jar]
[Opened /usr/java/j2sdk1.4.1/jre/lib/charsets.jar]
[Loaded java.lang.Object from /usr/java/j2sdk1.4.1/jre/lib/rt.jar]
[Loaded java.io.Serializable from /usr/java/j2sdk1.4.1/jre/lib/rt.jar]
[Loaded java.lang.Comparable from /usr/java/j2sdk1.4.1/jre/lib/rt.jar]
[Loaded java.lang.CharSequence from /usr/java/j2sdk1.4.1/jre/lib/rt.jar]
[Loaded java.lang.String from /usr/java/j2sdk1.4.1/jre/lib/rt.jar]

Do you know what I'm missing ? 你知道我在想什么吗? Why I don't see the "loaded" classes ? 为什么我看不到“已加载”的类? I have Java(TM) SE Runtime Environment 18.9 (build 11.0.2+9-LTS 我有Java(TM) SE Runtime Environment 18.9 (build 11.0.2+9-LTS

Thanks. 谢谢。 CC 抄送

I have the answer. 我有答案。 The expected results is on Java 8. In Java 11 the result is not the same, so I have to adapt my command for each version. 预期的结果是在Java 8上得出的。在Java 11中,结果是不同的,因此我必须针对每个版本调整命令。

Please try with below Classes .Hope this works for you 请尝试以下课程。希望这对您有用

java -cp my.jar -verbose:class Handler | grep 'Load*\|Open*'
java -cp my.jar -verbose:class Instrumentation | grep 'Load*\|Open*'
java -cp my.jar -verbose:class Serialisation | grep 'Load*\|Open*'

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM