ClassLoader не содержит класса

У меня есть агент, которому необходимо внести изменения в класс приложения, для этого я использую 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()));

Я получил исключение NotFoundException от Javassist. У меня была идея перебрать все классы, загруженные с помощью ClassLoader, полученного через

      playerControllerClazz.getClassLoader();

Используя этот код:

                  for (Class<?> c : instrumentation.getInitiatedClasses(playerControllerClazz.getClassLoader())) {
                System.out.println("Class: " + c.getName());
            }

Я проверил все строки в своем выводе и не нашел класс net.minecraft.client.multiplayer.PlayerControllerMP.

Где я ошибаюсь или что происходит?

0 ответов

Другие вопросы по тегам