Re: manipular un jar

David Castañeda <davidecv-/[email protected]>
Newsgroups gmane.comp.java.javaspain
Message-ID <[email protected]>
mmm osea la aplicacion ya esta en produccion y no quieres modificar todo porque tu jar esta tan avanzado que donde coloques el nuevo la aplicacion va a quedar vuelta @#$%!^&*!&^% .... 

???

bueno si ese es el caso ... mmmmmmmm.... pues por lo que entiendo usar CGLib o Proxy de java parece ser que no van a ayudar, talvez esto tambien lo puedas solucionar con AspectJ aunque seria overkill, y si no se te ha cruzado por la cabeza entonces seguramente no lo conozcas y el aprendizaje va a ser peor que solucionar el problema que tienes con el JAR.

talvez talvez algo que podria funcionar seria colocar otra clase mismo nombre mismo paquete, en otro jar o una clase sola pero que quede referenciada antes que el jar problema en el classpath de la aplicacion para que el classloader la cargue primero, es solo una sugerencia, la verdad que no se si funcione, ojala.

Suerte.


----- Original Message ----
From: José Fernández <[email protected]>
To: [email protected]
Sent: Saturday, March 22, 2008 2:05:31 PM
Subject: Re: [javaSpain] manipular un jar

                Gracias por las respuestas. La verdad es que leyendo mi correo ni yo 
entiendo lo que quiero decir. Voy a ver si ahora me sale mejor.

En una aplicación hay una clase con un método defectuoso, así que yo lo 
he corregido. He intentado compilarlo todo el paquete, pero el follón de 
dependencias es tal que intento hacerlo de otra forma. Intento remplazar 
dentro del jar la clase vieja por la nueva, pero intentando evitar la 
compilación de todo el paquete.

Un saludo.
josé

David Castañeda escribió:
> yo creo que si debe ser posible,,, mira por jardiff que es una 
> herramienta del jdk,, y tendrias que talvez tener buen conocimiento de 
> classloader. .. dependiendo de lo que quieras hacer...
>
> eso solo una idea pero si lo que quieres es cambiar el contenido del 
> jar que no esta en ejecucion yo empezaria mirando jardiff y si lo que 
> quieres es cambiar una clase en ejecucion talvez tendrias que mirar 
> por class loaders o talvez algo de AOP te pueda servir depende de que 
> sea realmente lo que quieres hacer.. pues que hasta el momento sabemos 
> muy poco.
>
> saludos.
>
> ----- Original Message ----
> From: Julian Cecchi <julian_cecchi@ yahoo.com. ar>
> To: javaSpain@yahoogrou ps.com
> Sent: Friday, March 21, 2008 9:03:53 PM
> Subject: Re: [javaSpain] manipular un jar
>
> Hola,
> Asi como existen compiladores, tambien existen descompiladores. Fijate 
> uno que te sea util.
> Saludos!
>
> */José Fernández <josea.fernandez@ gmail.com <http://gmail. com>>/* 
> escribió:
>
>     Hola,
>
>     No creo que se pueda, pero se puede cambiar una clase dentro de un
>     .jar
>     una vez empaquetado todo sin tener que compilar todo el resto del jar.
>
>     Lo pregunto porque me he hecho cargo de un proyecto hace poco y una
>     clase tiene un error, pero no tengo las clases originales. Así que he
>     reescrito una clase nueva que corrige el error.
>
>     Saludos.
>     José
>
>
> ------------ --------- --------- --------- --------- --------- -
>
> Tarjeta de crédito Yahoo! de Banco Supervielle. Solicitá tu nueva 
> Tarjeta de crédito. De tu PC directo a tu casa.
> Visitá www.tuprimeratarjet a.com.ar <http://a.com. ar>
>
>  

    
          			
<!--

#ygrp-mkp{
border:1px solid #d8d8d8;font-family:Arial;margin:14px 0px;padding:0px 14px;}
#ygrp-mkp hr{
border:1px solid #d8d8d8;}
#ygrp-mkp #hd{
color:#628c2a;font-size:85%;font-weight:bold;line-height:122%;margin:10px 0px;}
#ygrp-mkp #ads{
margin-bottom:10px;}
#ygrp-mkp .ad{
padding:0 0;}
#ygrp-mkp .ad a{
color:#0000ff;text-decoration:none;}
-->

<!--

#ygrp-sponsor #ygrp-lc{
font-family:Arial;}
#ygrp-sponsor #ygrp-lc #hd{
margin:10px 0px;font-weight:bold;font-size:78%;line-height:122%;}
#ygrp-sponsor #ygrp-lc .ad{
margin-bottom:10px;padding:0 0;}
-->
	
<!--

	#ygrp-mlmsg {font-size:13px;font-family:arial, helvetica, clean, sans-serif;}
#ygrp-mlmsg table {font-size:inherit;font:100%;}
#ygrp-mlmsg select, input, textarea {font:99% arial, helvetica, clean, sans-serif;}
#ygrp-mlmsg pre, code {font:115% monospace;}
#ygrp-mlmsg * {line-height:1.22em;}
#ygrp-text{
font-family:Georgia;
}
#ygrp-text p{
margin:0 0 1em 0;}
#ygrp-tpmsgs{
font-family:Arial;
clear:both;}
#ygrp-vitnav{
padding-top:10px;font-family:Verdana;font-size:77%;margin:0;}
#ygrp-vitnav a{
padding:0 1px;}
#ygrp-actbar{
clear:both;margin:25px 0;white-space:nowrap;color:#666;text-align:right;}
#ygrp-actbar .left{
float:left;white-space:nowrap;}
.bld{font-weight:bold;}
#ygrp-grft{
font-family:Verdana;font-size:77%;padding:15px 0;}
#ygrp-ft{
font-family:verdana;font-size:77%;border-top:1px solid #666;
padding:5px 0;
}
#ygrp-mlmsg #logo{
padding-bottom:10px;}

#ygrp-reco {
margin-bottom:20px;padding:0px;}
#ygrp-reco #reco-head {
font-weight:bold;color:#ff7900;}

#reco-grpname{
font-weight:bold;margin-top:10px;}
#reco-category{
font-size:77%;}
#reco-desc{
font-size:77%;}

#ygrp-vital{
background-color:#e0ecee;margin-bottom:20px;padding:2px 0 8px 8px;}
#ygrp-vital #vithd{
font-size:77%;font-family:Verdana;font-weight:bold;color:#333;text-transform:uppercase;}
#ygrp-vital ul{
padding:0;margin:2px 0;}
#ygrp-vital ul li{
list-style-type:none;clear:both;border:1px solid #e0ecee;
}
#ygrp-vital ul li .ct{
font-weight:bold;color:#ff7900;float:right;width:2em;text-align:right;padding-right:.5em;}
#ygrp-vital ul li .cat{
font-weight:bold;}
#ygrp-vital a{
text-decoration:none;}

#ygrp-vital a:hover{
text-decoration:underline;}

#ygrp-sponsor #hd{
color:#999;font-size:77%;}
#ygrp-sponsor #ov{
padding:6px 13px;background-color:#e0ecee;margin-bottom:20px;}
#ygrp-sponsor #ov ul{
padding:0 0 0 8px;margin:0;}
#ygrp-sponsor #ov li{
list-style-type:square;padding:6px 0;font-size:77%;}
#ygrp-sponsor #ov li a{
text-decoration:none;font-size:130%;}
#ygrp-sponsor #nc{
background-color:#eee;margin-bottom:20px;padding:0 8px;}
#ygrp-sponsor .ad{
padding:8px 0;}
#ygrp-sponsor .ad #hd1{
font-family:Arial;font-weight:bold;color:#628c2a;font-size:100%;line-height:122%;}
#ygrp-sponsor .ad a{
text-decoration:none;}
#ygrp-sponsor .ad a:hover{
text-decoration:underline;}
#ygrp-sponsor .ad p{
margin:0;}
o{font-size:0;}
.MsoNormal{
margin:0 0 0 0;}
#ygrp-text tt{
font-size:120%;}
blockquote{margin:0 0 0 4px;}
.replbq{margin:4;}
-->
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.