web-dev-qa-db-fra.com

Tutoriels sur javaagents

J'aimerais apprendre quelque chose sur les javaagents, mais la recherche n'est pas facile. La plupart des résultats se réfèrent à JADE. Je sais Java peut signifier deux choses:

  1. Un agent programmé en Java étant une incarnation du concept d'agent des systèmes distribués.
  2. Un composant logiciel de bas niveau pour augmenter le fonctionnement d'une machine virtuelle Java, comme les profileurs, les outils de couverture de code, etc.

J'ai trouvé une question similaire ici , mais malheureusement, elle se réfère également à la version 1.

Connaissez-vous des articles, des tutoriels pour les débutants, un exemple de projet sur javaagent dans la version 2? J'en ai trouvé un ici, mais j'en cherche plus.

52
alicjasalamon

Le deuxième cas parle de Java Instrumentation API - ce lien pointe vers un Javadoc qui est plutôt descriptif.

Et voici l'instruction complète et un exemple de la façon de créer Java agent d'instrumentation .

Le concept principal est de:

  1. Implémentez une méthode statique premain (par analogie avec main), comme ceci:

    import Java.lang.instrument.Instrumentation;
    
    class Example {
        public static void premain(String args, Instrumentation inst) {
            ...
        }
    }
    
  2. Créez un fichier manifeste (par exemple, manifest.txt) marquant cette classe pour l'exécution pré-principale. Son contenu est:

    Premain-Class: Example
    
  3. Compilez la classe et empaquetez cette classe dans une archive JAR:

    javac Example.Java
    jar cmf manifest.txt yourAwesomeAgent.jar *.class
    
  4. Exécutez votre JVM avec -javaagent paramètre, comme ceci:

    Java -javaagent:yourAwesomeAgent.jar -jar yourApp.jar
    
76
npe
4
devmake