eclipse jar java-web-start

eclipse - ¿Cuál es la diferencia entre las opciones de manejo de la biblioteca jar ejecutable?



java-web-start (1)

Entonces usaré Java Web Start para implementar la aplicación java. Al exportar a un Jar Runnable, hay tres opciones en eclipse Helios.

  • Extraiga las bibliotecas necesarias en JAR
  • El paquete requiere bibliotecas en JAR
  • Copie las bibliotecas necesarias en la subcarpeta al lado de JAR.

¿Cuáles son las diferencias y cómo afectarán a mi archivo .jnlp?

Si se trata de un solo contenedor, ¿no es más fácil porque no tendría que escribir todas las rutas diferentes a todas las bibliotecas que utiliza?

Si hay cambios tanto en la biblioteca como en la aplicación, ¿una sola jarría sería una mejor solución? ¿O necesitaría <jar href=''''> para cada biblioteca individual?

También tenga en cuenta que necesito hacer uso de bibliotecas nativas como archivos .dll y .so.


  1. Extraiga las bibliotecas requeridas en JAR : extrae los archivos .class reales de las bibliotecas que utiliza su aplicación y coloca esos archivos .class dentro del JAR ejecutable. Por lo tanto, el JAR ejecutable no solo contendrá los archivos .class de su aplicación, sino también los archivos .class de todas las bibliotecas que utiliza su aplicación.

  2. El paquete requiere bibliotecas en JAR : coloca los archivos JAR reales de las bibliotecas en su JAR ejecutable. Normalmente, JVM no puede cargar un archivo JAR dentro de un archivo JAR. Pero Eclipse agrega clases especiales al JAR ejecutable para que esto sea posible.

  3. Copie las bibliotecas necesarias en la subcarpeta junto a JAR - Mantiene los JAR de la biblioteca completamente separados del JAR ejecutable, por lo que el JAR ejecutable solo contendrá los archivos .class de su aplicación.

La opción n. ° 2 es conveniente porque empaqueta todo ordenadamente en un único archivo JAR y mantiene los archivos JAR de la biblioteca separados de los archivos .class de su aplicación.

Sin embargo, una desventaja de empaquetar todo dentro de un único JAR (opciones n. ° 1 y n. ° 2) es que, si actualiza su aplicación, el usuario tendrá que descargar más datos para actualizar la aplicación. Si los JAR se mantienen separados, entonces el usuario solo tendrá que descargar el JAR que contiene el código de su aplicación, en lugar de un solo JAR masivo que contiene el código de su aplicación y todo el código de la biblioteca.