Uso la base de datos H2 para una aplicación de escritorio en modo incrustado. Cuando comprime la aplicación en el archivo jar, el archivo de la base de datos se omite. Entonces, cuando ejecuto MyApplication.jar, nada funciona. ¿Cuál es la forma correcta de insertar/incluir/conectar el archivo h2.jar con MyApplication.jar? ¿O tal vez hay otra forma de entregar la base de datos y la aplicación en el paquete?¿Cómo incrustar la base de datos H2 en el archivo jar entregado al cliente?
Respuesta
Un esquema común es poner h2.jar
en un lib
directorio relativo a su aplicación e incluir una entrada Class-Path
en el manifiesto de su JAR con una entrada para ella:
Class-Path: lib/h2.jar lib/…
Adición: Este pequeño project incluye un enlace a el JAR specification y una práctica utilidad para examinar el manifiesto in situ.
Si está utilizando maven para construir su proyecto, eche un vistazo maven-assembly-plugin (jar-with-dependence). Esto produciría un solo contenedor con todas las dependencias empaquetadas en él.
Si está utilizando Maven para construir su proyecto, simplemente use maven-shade-plugin ... buenos resultados y control, lo he estado usando mucho.
para incrustar todas sus dependencias que iba a escribir algo como:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
Luego, con sólo un "mvn package" normal tendrá todas sus dependencias tarros incluidos en su frasco de aplicación.
Con la configuración adicional puede controlar qué se incluye y qué no.
Si usted quiere poner la base de datos en síen su archivo jar, a continuación, esta explicación podría ayudar: http://www.h2database.com/html/features.html#database_in_zip
Esto también se discute en this thread in the H2 forum.
- 1. Incrustar la base de datos h2 de Java programáticamente
- 2. Ejecutar archivo de script en la base de datos h2
- 3. Procedimiento almacenado en la base de datos H2
- 4. ¿Cómo ejecutar la base de datos H2 en modo servidor?
- 5. Cómo incrustar jar en HTML
- 6. h2 (modo integrado) presenta un problema de base de datos
- 7. Cargar archivo CSV ubicado en el classpath para la base de datos H2
- 8. ID de incremento automático en la base de datos H2
- 9. Play Framework: Error al obtener la secuencia nextval usando la base de datos en memoria H2
- 10. Incrustar datos JSON en el archivo YAML
- 11. Guardado de la base de datos H2 en memoria en el disco
- 12. base de datos de H2 CREATE TABLE con la restricción
- 13. H2 Conexiones múltiples a la base de datos
- 14. ¿Dónde están mis archivos de base de datos H2?
- 15. Restablecer la base de datos H2 incrustada periódicamente
- 16. Conexión JPA con la base de datos H2
- 17. ¿Cómo reemplazar el tipo de enumeración en la base de datos H2?
- 18. Incrustar el WSDL para un servicio web en un cliente JAX-WS .jar
- 19. ¿Cómo usar el comando DESC en la base de datos H2?
- 20. H2 base de datos SQLite en Android vs
- 21. Cómo crear una base de datos h2 desde algunos campos de un archivo CSV
- 22. Al incrustar jar en paquete OSGi, ¿ignorar o resultado opcional?
- 23. ¿Cómo usar la BÚSQUEDA DE TEXTO COMPLETO en la base de datos H2?
- 24. En la base de datos H2, el campo auto_increment se incrementa en 32?
- 25. ¿Tiene acceso al archivo en el archivo jar?
- 26. Inicie la base de datos H2 en modo servidor a través de Spring
- 27. ¿Cómo llamar al método en el archivo jar con terminal?
- 28. NullPointerException al intentar ejecutar el archivo .jar
- 29. Sockets web/Tornado - Notificar al cliente en la actualización de la base de datos
- 30. ¿Alguna experiencia en el mundo real con la base de datos H2?
¿Cómo está creando este archivo JAR? ¿Estás usando una herramienta de compilación como Maven, o simplemente ejecutando 'jar' desde la línea de comandos? – Anon
Uso Eclipse. Hay una opción para exportar al archivo jar, entonces uso esa opción. – bancer
Recomiendo tomar el tiempo para aprender Maven: http://www.sonatype.com/books/mvnref-book/reference/public-book.html - a largo plazo, esa inversión se amortizará muchas veces. – Anon