gpt4 book ai didi

java - 在加载之前检测编译代码的缺点

转载 作者:太空宇宙 更新时间:2023-11-04 08:10:30 24 4
gpt4 key购买 nike

如果应用程序在使用自定义加载器加载仪器类文件之前创建了仪器类文件,任何人都可以关注可能出现的问题吗?我创建了一个执行相同操作的 java 应用程序。

我以字节数组的形式读取类文件然后我使用 asm 库进行检测,然后通过自定义类加载器加载它们。

这个过程容易失败吗?如果是的话,为什么?

最佳答案

这样做的主要问题是它将您的应用程序与 JVM 联系在一起。 Java 社区非常努力地将 JLS 和 JVMS 分开,以便理论上可以在没有 JVM 的情况下使用 Java,并且有两个相当广泛的平台实际上可以在没有 JVM 的情况下使用 Java:Android 和 GWT。如果您不希望需要在不理解 Java 字节码的平台上运行,那么没问题。

请注意,静态字节码操作完全没问题。您可以在操作后将 JVM 字节码交叉编译为 Dalvik 字节码。但如果您想在运行时执行此操作,则必须在应用程序中包含 JVM 到 Dalvik 的交叉编译器……但它仍然无法工作,因为 Dalvik VM 根本不支持与 JVM 相同的动态字节代码加载。

关于java - 在加载之前检测编译代码的缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11294397/

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