How to embed H2 database into jar file delivered to the client?

前端 未结 4 937
无人及你
无人及你 2021-01-13 02:41

I use H2 database for a desktop application in embedded mode. When I compress the application into jar file the database file is omitted. So, when I run MyApplication.jar no

相关标签:
4条回答
  • 2021-01-13 02:52

    One common scheme is to put h2.jar in a lib directory relative to your application and include a Class-Path entry in your JAR's manifest with an entry for it:

    Class-Path: lib/h2.jar lib/…
    

    Addendum: This small project includes a link to the JAR specification and a handy utility for examining the manifest in situ.

    0 讨论(0)
  • 2021-01-13 02:53

    If you're using maven to build you project take a look maven-assembly-plugin (jar-with-dependencies). This would produce single jar with all dependencies packed into it.

    0 讨论(0)
  • 2021-01-13 03:00

    If you want to put the database itself in your jar file, then this explanation might help: http://www.h2database.com/html/features.html#database_in_zip

    This is also discussed in this thread in the H2 forum.

    0 讨论(0)
  • 2021-01-13 03:17

    If you are using Maven to build your project, just use maven-shade-plugin... great results and control, I've been using it a lot.

    For embedding all your dependencies you would write something like:

      <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>
    

    Then with just a normal "mvn package" you'll have all your dependencies' jars included in your application jar.

    With further configuration you can control what gets included and what not.

    0 讨论(0)
提交回复
热议问题