gpt4 book ai didi

java - "__JVM_DefineClass__"作为类加载器位置意味着什么?

转载 作者:行者123 更新时间:2023-12-02 01:26:00 27 4
gpt4 key购买 nike

我正在调试eclipse远程调试动态编译加载类时无法加载源代码的原因。我通过 -verbose:class 参数看到我的动态编译的类文件来自 __JVM_DefineClass__。我认为这意味着它们来自 JVM 堆空间本身,因为我让编译器将编译后的字节输出到“文件管理器”中,该文件管理器将编译后的字节缓存在内存中。

似乎调试时源代码可见的唯一方法是,如果我在源代码查找路径中指定实际加载的类的来源...并且如果我指定正在编译类的目录。我觉得如果我将编译后的字节保存到磁盘,源加载可能会起作用。

那么,__JVM_DefineClass__ 是什么意思?我的假设正确吗?

最佳答案

这意味着当ClassLoader调用defineClass时,ProtectionDomain中的CodeSource中未包含位置URL。这可能是因为该类是动态生成的,但也可能是因为 ClassLoader 在定义该类时根本没有提供信息。

关于java - "__JVM_DefineClass__"作为类加载器位置意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23156400/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com