Java Instrumentation

133
13 марта 2018, 02:40

Я создал jar файл для java агента для того чтобы использовать его в своем приложении , java агент подсчитывает размер объекта с помощью класса Instrumentation. В эклипсе я добавил параметр виртуальной машины : -javaagent: D:\ObjectSizeFetcher.jar , когда я запустил класс для проверки работы java agent , он выдал такую ошибку:

Error opening zip file or JAR manifest missing : 
Error occurred during initialization of VM
agent library failed to init: instrument

класс который подсчитывает размер объектов:

package ob;
import java.lang.instrument.Instrumentation;
class ObjectSizeFetcher {
private static Instrumentation instrumentation;
public static void premain(String args, Instrumentation inst) {
instrumentation = inst;
}
public static long getObjectSize(Object o) {
return instrumentation.getObjectSize(o);
}
}

класс для тестирования ObjectSizeFetcher:

package ob;
import java.util.ArrayList;
public class main {
public static void main(String [] args) {
ObjectSizeFetcher obj = new ObjectSizeFetcher();
ArrayList<String> arr = new ArrayList<String>();
for(int i=0;i<100;i++) {
    arr.add("a");
}
System.out.println(ObjectSizeFetcher.getObjectSize(arr));
} 
}

манифест файл :

Manifest-Version: 1.0
PreMain-Class: ob.ObjectSizeFetcher
READ ALSO
Как правильно передать данные из Fragment во ViewModel?

Как правильно передать данные из Fragment во ViewModel?

ЗдравствуйтеЕсть фрагмент, внутри которого RecyclerView, EditText и Button

129
NullPointerException и EditText

NullPointerException и EditText

Великая java требует от меня, что бы переменные name, number, data были final, но если их сделать final, то текст с edittext еще не будет получен и я схвачу NullPointerException,...

146