Как я могу переопределить блок статического кода динамически в файле класса Java - PullRequest
0 голосов
/ 04 ноября 2011

Оригинальный класс как:


    public class Test{

    static {
        System.loadLibrary("hello");
    }
    ...
    }

Я хочу изменить его на:


    public class Test{

    static {
        System.load("/home/abc/libhello.so");
    }
    ...
    }

Test.class находится в файле jar. Я не могу изменить файл фляги. Есть ли способ сделать это?

Ответы [ 3 ]

3 голосов
/ 04 ноября 2011

Нет. Если вам нужно изменить поведение кода, вам нужно изменить код. Почему вы не можете изменить файл jar?

2 голосов
/ 04 ноября 2011

Нет способа переопределить.

Вы всегда можете изменить файл фляги. Используйте декомпилятор и получите исходный код, измените его и упакуйте обратно

0 голосов
/ 04 ноября 2011

Test.class - это скомпилированная версия вашего Test.java файла.Если вы хотите изменить поведение вашей программы, вы должны изменить его в файле Test.java и перекомпилировать.

...