• Miércoles 20 de Noviembre de 2024, 12:42

Autor Tema:  Duda Con Classloader  (Leído 1405 veces)

laura_mg

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Duda Con Classloader
« en: Jueves 31 de Enero de 2008, 10:55 »
0
Hola, mi duda es la siguiente:

Tengo que hacer una aplicación en la que hay que realizar una carga de clases en tiempo de ejecución, de tal forma que tenga un comportamiento "Modular". Es decir, que en función de determinados parámetros se tendrá que cargar un módulo u otro y, si alguno de estos módulos cambia (es necesario cambiar el contenido de alguna clase) sólo sea necesario compilar este módulo y no la aplicación entera y no haya que volverla a instalar.

He estado mirando y he visto que hay un ClassLoader pero no se ni cómo funciona ni siquiera si es lo que necesito.

Además, estos módulos son ficheros que estarán en un directorio diferente al de la aplicación.

Lo que me gustaría saber es si lo que pretendo es posible y en caso de que lo sea, cómo lo podría hacer.

Agradecería cualquier ayuda. Muchas gracias de antemano.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Duda Con Classloader
« Respuesta #1 en: Jueves 31 de Enero de 2008, 14:06 »
0
con solo cambiar la clase compilada es suficiente. no necesitas hacer nada como carga de clases en tiempo de ejecucion, salvo que tu no sepas cuales seran las clases a cargar.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

laura_mg

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Duda Con Classloader
« Respuesta #2 en: Jueves 31 de Enero de 2008, 18:19 »
0
Pero si tienes la clase en el mismo jar que toda la aplicación, te tocaría volver a hacer el jar completo. NO??

Para que sólo tengas que compilar la clase que modifiques, tendrá q estar en otro jar diferente. Hay que hacer algo para que la aplicación encuentre la clase y no de error de carga xq no la encuentre??

Gracias

khrono

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Duda Con Classloader
« Respuesta #3 en: Jueves 31 de Enero de 2008, 18:43 »
0
Código: Text
  1.  
  2.   Class t = Class.forName("with.packgage.class.MyClass");
  3.  
  4.  
esto carga la clase a memoria , Java busca la clase en le classpath asi que puede estar fuera de un jar , o en otro jar siempre y cuando esta en el classpath de la applicacion.

Código: Text
  1.  
  2.   AbstractParaMiClase base=return
  3.                                             (AbstractParaMiClase) t.getConstructors()[0]
  4.           .newInstance(Parametros del Constructor[0]);
  5.  
  6.  
Cargamos la instancia de la clase en memoria definimos una clase abstracta o interface, usamo esto ya que no vamos a tener una referencia directa a nuestra clase cargada dinamicamente.Encaso de que nuestra clase tubiera mas constructores estos son ordenas en el Array segun la declaracion en la clase





_______________________________________________________________
Vi Veri Veniversum Vivus Vici
[By the power of Truth, I, while living, have conquered the universe]