Foros del Web » Programación para mayores de 30 ;) » Java »

Cargar clases dinamicamente sobre un jar

Estas en el tema de Cargar clases dinamicamente sobre un jar en el foro de Java en Foros del Web. Hola. Llevo ya un par de años en java por mi cuenta. Mi gran duda y de la que espero alguna respuesta es esta: Lo ...
  #1 (permalink)  
Antiguo 19/04/2013, 09:55
 
Fecha de Ingreso: febrero-2012
Mensajes: 10
Antigüedad: 12 años, 1 mes
Puntos: 0
Pregunta Cargar clases dinamicamente sobre un jar

Hola. Llevo ya un par de años en java por mi cuenta. Mi gran duda y de la que espero alguna respuesta es esta:
Lo que quiero hacer es con una aplicacion externa, llamemoslo launcher, cargar un jar. Bien, una vez cargadas las clases de ese jar, quiero cargar otras clases que puedan estar sueltas, en una misma carpeta, y las que tengan el mismo nombre que las ya cargadas, se sobreescriban o algo asi.
No se si estare diciendo algun disparate, espero que alguien pueda ayudarme.
Supongo que tendra algo que ver con java classloader-
Saludos
  #2 (permalink)  
Antiguo 19/04/2013, 10:11
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Cargar clases dinamicamente sobre un jar

Hola:

Si la carpeta ya está creada y tienes las clases, basta poner todo en el classpath al arrancar el launcher.

Si quieres añadir esas clases cuando el launcher ya está arrancado, tienes que hacerte tu propio ClassLoader, de forma que sea capaz de coger esos sitios al vuelo.

Lo de reemplazar clases ya existentes no sé si se puede hacer. Si la clase ya está cargada en memoria, cuando java la necesite no va a ir a buscarla a ningún sitio, por lo que no la reemplazará.

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: clase, clases, dinamicamente, jar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:42.