mi aplicación necesita varios tarros para funcionar. Como es una aplicación de escritorio, no puedo responsabilizar al usuario de la instalación. Por lo tanto, en mi script de compilación, descomprimo el contenido de jars en mi directorio de compilación, borro los archivos de manifiesto, compilo mi software y lo vuelvo a ejecutar. Todo funciona como debería, mi pregunta es si hay algún efecto secundario a largo plazo para este proceso.Fusión de varios tarros en un solo tarro
Respuesta
En el pasado, había JAR con contenido extraño (como el controlador de DB2 que contiene com.ibm
y com.IBM
; después de descomprimir en un sistema de archivos de Windows, esos dos paquetes se fusionarían).
El único problema que debe tener en cuenta son los archivos jar firmados y otros archivos en META-INF que pueden tener el mismo nombre en varios JAR de origen.
Una solución simple para todos estos problemas es usar One-JAR. Permite envolver varios JAR en uno sin desempaquetarlos, primero. Y leer esta respuesta: Easiest way to merge a release into one JAR file
Si algunos de los frascos están firmados, se pierde la firma al desembalarlo/reempaquetarlo.
Bueno, está tirando el MANIFIESTO de sus jarras de terceros, por lo que podría causarle problemas. Por ejemplo, podría estar causando problemas de seguridad tirando el atributo "Sellado".
¿Por qué no crear simplemente un instalador simple y una secuencia de comandos para iniciar su aplicación que establece la CLASSPATH correctamente?
Si desea una forma sin problemas para el usuario final para dar inicio a un programa con múltiples dependencias tarro es posible que desee mirar a Launch4j o Jsmooth (prefiero Launch4j). Ambos son programas que crean ejecutables que envuelven jar (s) y JRE juntos de modo que para el usuario final no aparece diferente de cualquier otro ejecutable.
Otra gran opción es ProGuard, que también puede encoger y/u ofuscar el código.
Si la plataforma de destino principal es el escritorio de Windows, entonces también podría considerar la generación de un exe nativo de Windows de los frascos de su aplicación
Uno-JAR hará el trabajo, y tiene una nueva versión (0.97), que admite marcos como Spring y Guice, que los usuarios ahora están empaquetando en archivos One-JAR. http://one-jar.sourceforge.net
Ference Hechler también hizo un gran trabajo dentro de Eclipse con el asistente de exportación de Eclipse: trabajamos juntos en FatJar/One-JAR de la que creció el trabajo de Eclipse, y puedo recomendar que como un enfoque, aunque no lo hago saber qué tan bien maneja los marcos.
Una solución más simple (IMO) está utilizando Maven's assembly plugin, que también se describe en una de las respuestas a otra pregunta a la que se ha vinculado en un previous Q&A. Esto se proporciona si está utilizando Maven (que es una herramienta recomendada por derecho propio) como una herramienta de compilación.
- 1. ¿Manera limpia de combinar varios tarros? Preferiblemente usando Ant
- 2. Rehacer fusión de un solo archivo
- 3. Pipetear varios comandos en un solo comando
- 4. Concatenate varios archivos CSS en un solo
- 5. combinar varios diccionarios en un solo diccionario
- 6. log4j.xml en tarros de cliente
- 7. La inyección de un grano de un tarro diferente en Weld
- 8. ¿Puedo hacer cumplir una rama de solo fusión en git?
- 9. Escribiendo en un solo archivo desde varios hilos en ruby
- 10. Classloader de sistema de reemplazo para clases en tarros que contienen tarros
- 11. ¿Cómo instalo un tarro de prueba en maven?
- 12. Java Swing: mostrar imágenes desde dentro de un tarro
- 13. ¿Cómo puedo "modificar" varios archivos en un solo archivo base?
- 14. SVN- cómo cometer varios archivos en un solo tiro
- 15. Fusiona varios archivos mstest trx en un solo archivo trx
- 16. Cómo comprimir varios archivos en un solo archivo con Delphi
- 17. cómo descargar un solo archivo con varios subprocesos en C#
- 18. Cómo convertir un solo repositorio hg en varios repositorios
- 19. Cómo agregar varios encabezados en un solo ListView con addHeaderView()?
- 20. buena manera de "envolver" los tarros para OSGi con Maven
- 21. IntelliJ no importa los tarros
- 22. "fusión" de varios modelos. Para crear un cuadro de "actividad reciente"
- 23. php Reemplazo de varios espacios con un solo espacio
- 24. fusión multidireccional vs fusión bidireccional
- 25. git recuperar solo archivo que se eliminó durante una fusión
- 26. Maven excepción tarro de sombra tiro
- 27. cuando las clases en tarros entran en PermGen
- 28. Cómo hacer "tarro de exportación" de Eclipse desde la línea de comandos
- 29. tarros no copian en la carpeta lib de Tomcat
- 30. Maven - Generar tarro y la Guerra