gpt4 book ai didi

java - 是否可以使用 javassist java 核心类进行检测?引导类加载器加载的类

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:36:33 25 4
gpt4 key购买 nike

我想在核心 JDK 5 类的方法上添加“insertBefore”。由于某种原因,它不工作。下面是代码示例:

ClassPool pool = ClassPool.getDefault();
CtClass ctClass = pool.get("com.sun.org.apache.xerces.internal.impl.xs.XSMessageFormatter");
CtMethod ctMethod = ctClass.getDeclaredMethods()[0];
ctMethod.insertBefore("System.out.println(\"WORKED\");");
ctClass.toClass();

com.sun.org.apache.xerces.internal.impl.xs.XSMessageFormatter 与 JDK 捆绑在一起,位于 rt.jar 中。在上面的代码片段之后,我运行了一些强制 XSMessageFormatter 类运行的代码,但我插入的代码从未运行过。我只能让它在我自己的类里面工作。此代码作为简单的独立应用程序运行。

有什么想法吗?

最佳答案

修改 java 核心类是个坏主意。使用 Java Instrumentation API 的正确方法(自 Java 1.5 起)。

关于java - 是否可以使用 javassist java 核心类进行检测?引导类加载器加载的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9703929/

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