Lorsque je tente d'exécuter un programme java (java -javaagent:size.jar ObjectSizeTest
) je reçois l'erreur suivante:« Impossible de charger l'attribut manifeste Premain-classe » tout en essayant d'obtenir la taille d'un objet en utilisant un agent java
Failed to load Premain-Class manifest attribute from D:\workspace\ObjectSizeTest\size.jar
Error occurred during initialization of VM
agent library failed to init: instrument
ici est le code de ObjectSizeTest:
public class ObjectSizeTest {
public static void main(String[] args) {
String s = new String("sai");
System.out.println(ObjectSizeFetcher.getObjectSize(s));
}
}
MANIFEST.MF (pour size.jar):
Manifest-Version: 1.0
Created-By: 1.5.0_18 (Sun Microsystems Inc.)
Premain-Class: ObjectSizeFetcher
et ici est O Code de bjectSizeFetcher:
import java.lang.instrument.Instrumentation;
public 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);
}
}
Vous obtenez l'erreur suivante ... et ...? (Vous n'avez pas posé de question.) – JasCav
où sont les sources de size.jar? Je suppose que nous en avons besoin. – rochb
Pouvez-vous publier le fichier manifeste, je pense que votre Premain-Class dans le fichier manifeste n'est pas entièrement qualifié ou il est incapable de trouver cette classe. –