Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

296
Vistas
Cargue un JAR de agente Java ubicado dentro del cargador

Tengo dos proyectos separados en mi IDE para el agente y para el cargador que encuentra una máquina virtual de destino y carga el JAR del agente.

  • Cuando se crea el proyecto del agente, el artefacto JAR del agente resultante se copia en la carpeta de recursos del cargador.
  • Cuando se crea el proyecto del cargador, el JAR del cargador contiene tanto el código del cargador como el agent.jar .

La estructura del cargador ejecutable resultante se ve así:

 loader.jar ├── META-INF │ └── MANIFEST.MF ├── me.domain.loader │ └── Main.class └── agent.jar ├── META-INF │ └── MANIFEST.MF └── me.domain.agent └── Agent.class

De la especificación VirtualMachine#loadAgent(java.lang.String) , necesito proporcionar una ruta al JAR que contiene el agente como primer parámetro.

Sin embargo, cuando uso Main.class.getResource("/agent.jar").getPath() obtengo una AgentLoadException: Agent JAR not found or no Agent-Class attribute . ¿Cuál es la forma correcta de hacer eso?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Ya tuve ese problema en un proyecto maven. De todos modos, es posible que necesite tener un archivo de manifiesto aquí en META-INF/MANIFEST.MF:

 Manifest-Version: 1.0 Agent-Class: com.package.AgentLoader.agentNameHere Permissions: all-permissions

Tiene más detalles aquí: https://docs.oracle.com/javase/tutorial/deployment/jar/manifestindex.html o Agente JAR no encontrado o sin atributo de clase de agente

over 4 years ago · Santiago Trujillo Denunciar

0

Parece que el JAR del agente que se va a cargar debe existir en el disco. Resolví este problema copiando el recurso JAR incrustado en un archivo temporal:

 private static String getTemporaryResource(String resourceName) { // Read embedded resource from this JAR InputStream resourceStream = Main.class.getResourceAsStream(resourceName); if (resourceStream == null) { throw new Exception("Resource not found in the JAR"); } // Create a temporary file in %TEMP%/resource5513111026806316867.tmp File temporaryFile = File.createTempFile("resource", null); temporaryFile.deleteOnExit(); // Copy the resource data into the temporary file Files.copy(resourceStream, temporaryFile.toPath(), StandardCopyOption.REPLACE_EXISTING); // Return the path to temporary file return temporaryFile.getAbsolutePath(); }

Luego estoy usando esta ruta temporal para cargar el agente:

 String tempAgentPath = getTemporaryResource("/agent.jar"); VirtualMachine targetVM = VirtualMachine.attach("1337"); targetVM.loadAgent(tempAgentPath);
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda