proyecto programa instalador hacer guardar empaquetar ejecutar ejecutable directo datos crear con como acceso java

java - programa - ¿Debo recompilar mi aplicación cuando actualizo un jar de terceros?



crear instalador en netbeans (5)

Generalmente no, si el tercero está bien diseñado.

Sin embargo, en el (horrible) caso en que la API cambie la firma de un método, o elimine un método / clase, entonces necesitará una modificación y una recompilación de su propio código.

Por ejemplo, si tiene doSomething(String value); eso se convirtió en algo doSomething(int value); (o String doSomething() convirtiéndose en int doSomething() ), entonces el código de su aplicación que llama a doSomething (...) ya no funcionará. Entonces se requiere una modificación de su código (y luego una recompilación).

Sin embargo, debe saber que este caso es extremadamente raro (excepto si está usando una dependencia pre alfa, por ejemplo). En general, para garantizar la compatibilidad con versiones anteriores, las API nunca eliminan clases o métodos. La anotación @Deprecated se usa en su lugar, para obligar al desarrollador a usar otro método / clase ...

Tengo una aplicación Java que usa API de terceros. Los archivos jar de terceros cambian con bastante frecuencia debido a todo tipo de parches, pero la API en sí no cambia con tanta frecuencia.

¿Debo recompilar mi aplicación cada vez que cambia el frasco de terceros?


No, solo necesitas recompilar el código que cambias.


Otro caso donde una recompilación es teóricamente necesaria es constantes. El valor de una constante se compila literalmente en el bytecode de las clases que lo usan. Si se cambia el valor en una nueva versión de la API, todo lo compilado contra la versión anterior continuará utilizando el valor anterior, lo que puede conducir a un comportamiento diferente y a errores muy difíciles de diagnosticar.

Por supuesto, ningún diseñador de API con una onza de cerebro cambiará los valores de las constantes públicas si puede evitarlo, pero puede haber casos en los que sea necesario.


Si la API cambia, debe volver a compilar incluso si no necesita realizar ningún cambio en su código fuente. Si la API no ha cambiado, no es necesario que recompile.

El motivo de "incluso si no necesita realizar ningún cambio" es que algunos cambios compatibles con la fuente pueden no ser compatibles con binarios. Por ejemplo, supongamos que está llamando actualmente:

public void foo(String x)

y en una versión posterior esto se cambia a:

public void foo(Object x)

Obviamente, su código aún se compilará, pero el método al que resuelve la llamada cambiará.

Este es un caso marginal, por supuesto. Básicamente, siempre que sepa cuándo cambia la API, debería estar bien.


java no es C ++: cuando utilizas una biblioteca, no importas una sola línea de código. Usted solo carga la biblioteca a pedido y la usa. Por esta razón, no es necesario que recompile su código :)