我有一个需要更改应用程序类的代理,因为我使用的是 Attach API + Javassit。首先我尝试使用:
Class.forName("net.minecraft.client.multiplayer.PlayerControllerMP");
但是我收到一个异常,说找不到该类。
for (Class<?> c : instrumentation.getAllLoadedClasses()) {
if (c.getName().equals("net.minecraft.client.multiplayer.PlayerControllerMP"))
playerControllerClazz = c;
}
要将类添加到 Javassist 路径,我使用了以下代码:
ClassPool.getDefault().appendClassPath(new LoaderClassPath(playerControllerClazz.getClassLoader()));
我从 Javassist 得到了一个名为 NotFoundException 的异常。有过迭代所有通过ClassLoader加载的类的想法
playerControllerClazz.getClassLoader();
使用此代码:
for (Class<?> c : instrumentation.getInitiatedClasses(playerControllerClazz.getClassLoader())) {
System.out.println("Class: " + c.getName());
}
我检查了输出中的所有行,但没有找到 net.minecraft.client.multiplayer.PlayerControllerMP 类。
我哪里错了或发生了什么?