5

組み込みモードのデスクトップアプリケーションにH2データベースを使用しています。アプリケーションをjarファイルに圧縮すると、データベースファイルが省略されます。したがって、MyApplication.jarを実行しても、何も機能しません。h2.jarファイルをMyApplication.jarに埋め込む/含める/接続する正しい方法は何ですか?または、データベースとアプリケーションをバンドルで提供する別の方法がありますか?

4

4 に答える 4

3

Mavenを使用してプロジェクトをビルドしている場合は、maven-shade-pluginを使用してください...優れた結果と制御、私はそれを頻繁に使用しています。

すべての依存関係を埋め込むには、次のように記述します。

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

次に、通常の「mvnパッケージ」だけで、すべての依存関係のjarがアプリケーションjarに含まれます。

さらに構成を行うと、何を含めるか、何を含めないかを制御できます。

于 2010-12-14T21:05:07.820 に答える
3

一般的なスキームの1つは、アプリケーションに関連h2.jarするディレクトリに配置し、JARのマニフェストにそのエントリを含むエントリを含めることです。libClass-Path

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

補遺:この小さなプロジェクトには、 JAR仕様へのリンクと、マニフェストをその場で調べるための便利なユーティリティが含まれています。

于 2010-12-14T20:16:56.327 に答える
2

データベース自体をjarファイルに 入れたい場合は、次の説明が役立つ場合があります: http ://www.h2database.com/html/features.html#database_in_zip

これは、H2フォーラムのこのスレッドでも説明されています。

于 2010-12-14T21:10:35.793 に答える
0

プロジェクトのビルドにmavenを使用している場合は、maven-assembly-plugin(jar-with-dependencies)を確認してください。これにより、すべての依存関係がパックされた単一のjarが生成されます。

于 2010-12-14T20:57:46.927 に答える