質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JAR

JAR(又はJava ARchive)はコンパイルされた複数のJavaバイトコード及び関連ファイルのリソースを一つのファイルに統合したものです。JARファイルはZIPファイルのフォーマットで構築されています。

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

5048閲覧

javaで組み込みデータベースを使うアプリケーションを作成し配布するには?

hophoosan101

総合スコア11

JAR

JAR(又はJava ARchive)はコンパイルされた複数のJavaバイトコード及び関連ファイルのリソースを一つのファイルに統合したものです。JARファイルはZIPファイルのフォーマットで構築されています。

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

1クリップ

投稿2015/06/27 09:52

編集2015/06/27 10:01

SQLiteやDerbyなどの組み込みデータベースを読み書きして使用するアプリケーションをJavaで作って配布したいと思っています。
配布するとなれば、JARファイルにエクスポートして配布するのが一般的だと思うのですが、SQLiteやDerbyなどのデータベースファイルはJARに入れてしまったら書き込みが不可能になりますよね。
そのためJARの外部にファイルとして提供することになると思うんですが、最終的にJARファイルと同じディレクトリ内にデータベースを置くかんじにしたいです。
現在Eclipseで試しているんですが、たとえば

lang

1Connection conn = DriverManager.getConnection("jdbc:derby:TestDB;create=true");

のようにデータベースを取得してしまうと、実行しているディレクトリがずっと変わらないIDE上では問題なく動作するんですが、JARとしてエクスポートしてから実行するとJARのディレクトリではなく実行したディレクトリに作成されてしまいます。
どこから実行しても同じディレクトリ内のデータベースファイルを読みに行けるようにするにはどうすればいいんでしょうか?違うコンピュータ上でも実行できるように絶対パス指定は避けたいと思っています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

argius

2015/06/27 12:58

いくつか教えてください。 ・SQLiteかDerbyでなければダメでしょうか。 ・データベースファイルは、インストール直後は中身は空でOKですか?
hophoosan101

2015/06/27 13:27

同じように動作するものなら大丈夫ですが、データベースを活用してアプリケーションを作りたい、と思いこう書かせていただきました。 プログラム上でテーブルを作成したりできるようにしておけば空でも問題ないと考えています。
guest

回答2

0

ベストアンサー

その配布するJarファイル内に適当なリソースファイルを入れてください。
そのリソースファイルをClassクラスのgetResource(String name)メソッドで検索すると、URLが取得できます。
あとは、そのURLの内容を分析することで、自身のJarファイルが置かれているディレクトリパスが取得できます。

投稿2015/06/27 17:24

Stripe

総合スコア2183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

JARファイルと同じディレクトリ内にデータベースを置くかんじにしたいです。

すみません、これを見落としていて見当違いの回答をしてしまいました。
撤回します。

投稿2015/06/27 13:53

編集2015/06/28 00:57
argius

総合スコア9388

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問